Maintenance for the week of June 23:
• PC/Mac: No maintenance – June 23
• PC/Mac: NA and EU megaservers for maintenance – June 25, 12:00AM EDT (4:00 UTC) - 6:00PM EDT (22:00 UTC)
The issues on the European console megaservers have been resolved at this time. If you continue to experience difficulties at login, please restart your client. Thank you for your patience!
Just noticed a mail from the guild store with attached sales money, received today, which says I received it "1657 months ago, expires in < 1 day". I got three of those, for three sales today.
Server reports mail as being received at X time. This is the server's timestamp.
The game's UI tries to be cute (more like ****ing annoying) and instead of saying "received at X time", it tries to be useless and say "received Y time ago". This requires the game's UI to determine the difference between the mail's timestamp and "now".
If the player's locally-set computer time is out of sync with the server's time (e.g., if your computer clock is behind and thinks that it's 10:50 when it's really 10:51), then the game might end up having to say "received -1 minute ago".
But the game's UI treats all numbers as unsigned 32-bit integers instead of signed 32-bit integers, so negative 60 seconds gets treated as 4 billion seconds. Which happens to be around 1657 months.
So the first problem is that the UI designers thought that "Y time ago" is somehow more useful than just stating the time directly. If they just stated the time directly instead of obfuscating it behind "Y time ago" math, none of this would be an issue.
The second problem is an oversight in the UI not accounting for the possibility that the player's computer clock isn't properly synced and that there may be negative "Y time ago" as a result. Simply adding a check or just treating numbers as signed rather than unsigned would've avoided that.
But in the end, just a UI glitch. And not a new one. This one has been around forever. It's nothing more than dumb coincidence that you happened to notice it after a patch.
I suppose @code65536 is correct. I Linux dual-booted my gaming PC today, and Linux assumes the hardware clock in UTC, while Windows assumes it in local time zone (which is UTC+2 for me). So the Windows clock was two hours behind when I started the game.
Even though this is indeed just a cosmetic bug, it could easily have been indicative of a bigger issue (mind you it wouldn't have been the first time that something major is screwed up after a patch day), and at the very least can lead to confusion. And considering "it's been around forever", it's even more pitiful that it hasn't been fixed yet.
Well, yes, it's definitely a bug in that the game doesn't account for the possibility of out-of-sync time... usually, there would only be less than a minute or so of difference between local time and server time, so unless you view the mail the instant the server registers the mail on its end, you're usually out of negative territory by the time the UI opens up. A larger discrepancy caused by the thing you just described simply widens the window in which this problem can be seen.
But I am of the opinion that the larger issue is their insistence of saying "X time ago" instead of just displaying a timestamp. This is extremely annoying if I'm looking at, say, a hireling mail that said it had arrived 11 hours ago. Well, is that 11h05ms ago or 11h55m ago? How long do I have to wait for my next hireling mail? Gee, if only it could be displayed like "2017/08/31 15:23", then there would be no ambiguity for me, and bugs like this would be impossible.