Python - Add time zone to timestamp

1.6k views Asked by At

I use chrome timestamp and convert it do readable date but time isn't right

timestamp_formated = str(datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=last_visit_time))

Seems to be timezone need to be added

example for last_visit_time : 13292010189305268

2

There are 2 answers

5
deceze On BEST ANSWER

Assuming that Chrome timestamps denote microseconds since 1601 UTC, you'll want to make your datetime aware:

from datetime import datetime, timezone, timedelta

epoch = datetime(1601, 1, 1, tzinfo=timezone.utc)
timestamp = epoch + timedelta(microseconds=last_visit_time)
print(timestamp)

If you want to format it for a non-UTC timezone, add a conversion step:

local_timestamp = timestamp.astimezone(the_timezone)
1
Izuki13 On

if you'd like to localize(use timezone specific dates and time) you can use pytz for that

t = datetime(
2013, 5, 11, hour=11, minute=0,
tzinfo=pytz.timezone('Europe/Warsaw')

)