PRTime to datetime in Python

Question:

I am writing a script that is retrieving information from file places.sqlite (history) and realized that it stores the time in the PRTime format. Is there a method available in Python which could convert this date time or do I have to make it myself?

Asked By: Michael Grech

||

Answers:

There isn’t any built-in method, but it does seem quite trivial to implement:

>>> t = 1221842272303080
>>> t /= 1e6
>>> t
1221842272.30308
>>> import datetime
>>> datetime.datetime.fromtimestamp(t)
datetime.datetime(2008, 9, 19, 17, 37, 52, 303080)

The result is local time. For UTC you could do:

>>> import time
>>> time.gmtime(t)
time.struct_time(tm_year=2008, tm_mon=9, tm_mday=19, tm_hour=16, tm_min=37, tm_sec=52, tm_wday=4, tm_yday=263, tm_isdst=0)

That’s py3k output, and it might differ slightly in Python 2.x.

Answered By: SilentGhost

PRTime is the number of microseconds since 1970-01-01 (see https://developer.mozilla.org/en/PRTime), so just do this to get UTC time:

datetime.datetime(1970, 1, 1) + datetime.timedelta(microseconds=pr_time)

For example,

print datetime.datetime(1970, 1, 1) + datetime.timedelta(microseconds=time.time()*1000*1000)

Output:

2010-03-25 13:30:02.243000
Answered By: Anurag Uniyal
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.