Search code examples
python-3.xdatetimepytz

How to create a datetime object given seconds since unix epoch?


There seems to be a lot of confusion online on doing a very basic thing: create a datetime object with UTC timezone given seconds since unix epoch in the UTC timezone. Basically, I always want to work in absolute time/UTC.

I'm using python 3.5 (the latest right now) and want to simply get a datetime object in the context of UTC (+0/Zulu offset) from a floating point value of elapsed seconds since 1970 Jan 01.

This is wrong since the first time is created in my local timezone, and then I attempt to switch to UTC.

import datetime
import pytz
dt = datetime.datetime.fromtimestamp(my_seconds).replace(tzinfo=pytz.UTC)

Solution

  • Python provided the method utcfromtimestamp just for that case. utcfromtimestamp

    import datetime
    
    seconds = 0
    utcdate_from_timestamp = datetime.datetime.utcfromtimestamp(seconds)