On Saturday, 31 January 2015 at 00:14:37 UTC, Steven
Schveighoffer wrote:
On 1/30/15 5:18 PM, Chris Williams wrote:
I'm attempting to print a human-readable version of a
timestamp. The
timestamp is coming from an external service, via JSON. An
example is:
1421865781342
Which I know to be:
2015-01-21T18:43:01.342Z
http://dlang.org/phobos/std_datetime.html#.unixTimeToStdTime
It's kind of convoluted because there is no epoch, but you can
make one:
import std.datetime;
import std.stdio;
void main(string[] args)
{
// can't make this enum because of time zone...
auto epoch = SysTime(unixTimeToStdTime(0), UTC());
writeln(epoch + 1_421_865_781_342.msecs);
}
output:
2015-Jan-21 18:43:01.342Z
Note the reason your code didn't work is because SysTime uses
1/1/1 as the epoch.
-Steve
D'oh, I missed that in the description:
"and convert it to hnsecs in UTC since midnight, January 1st, 1
A.D. UTC"
That does explain it. I also didn't spot the declaration of
unixTimeToStdTime(), which assuredly helps.
Thank you!