I have a data file containing timestamps like "1331856000000". Unfortunately, I don't have a lot of documentation for the format, so I'm not sure how the timestamp is formatted. I've tried Python's standard
datetime.fromtimestamp() and a few others, but nothing matches. I'm pretty sure that particular number corresponds to the current date (e.g. 2012-3-16), but not much more.
How do I convert this number to a
fromtimestamp() expects Unix timestamp, in seconds.
Do it like that:
>>> import datetime >>> your_timestamp = 1331856000000 >>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
and the result is:
>>> date datetime.datetime(2012, 3, 16, 1, 0)
Does it answer your question?
EDIT: J.F. Sebastian correctly suggested to use true division by
1000). The difference is significant, if you would like to get precise results, thus I changed my answer. The difference results from the default behaviour of Python 2.x, which always returns
int when dividing (using
int (this is called floor division). By replacing the divisor
1000 (being an
int) with the
1e3 divisor (being representation of
1000 as float) or with
1000. etc.), the division becomes true division. Python 2.x returns
float when dividing
float etc. And when there is some fractional part in the timestamp passed to
fromtimestamp() method, this method's result also contains information about that fractional part (as the number of microseconds).