views:

160

answers:

2

Im working with Google bookmakrs and it returns 16-digit timestamp that i dont seem to be able to recognize in C# to turn into real dates, any ideas?

how to turn this timestamp: 1278276905502403 to something that makes sense in C#?

+5  A: 

That looks like UNIX time in microseconds. That is, the number of microseconds since 1970.01.01 00:00:00.

Could try something like:

dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddMilliseconds(value/1000);

(Probably a better way to do this, but I don't know C#.)

Python instead:

>>> time.ctime(1278276905502403/1000000)
'Sun Jul  4 22:55:05 2010'
integer
Why would you round it to an integer? o_O
Rotsor
I don't know C# and didn't Google to check if it accepted floating point, nor do I know how strict C# is with implicit conversion. But I updated it to use AddMilliseconds() as the other answer, though now they're basically the same.
integer
ur absolutely spot on, i dropped the last three digits alltogether and it works like a charm (the answer below is also correct)
Ayyash
+3  A: 

The timestamp is the number of microseconds since the epoch (01/01/1970 00:00:00 UTC).

You can convert it to a DateTime in C# like this:

var timestamp = 1278276905502403;
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var myDate = epoch.AddMilliseconds(timestamp / 1000);

The result for the example timestamp is: 07/04/2010 08:55:05 PM

Jack Leitch