使用epoch自动初始化一个日期时间对象

time模块可以使用自时代以来的秒数进行初始化:

>>> import time
>>> t1=time.gmtime(1284286794)
>>> t1
time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19, 
                 tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)

有没有一种优雅的方式来以相同的方式初始化一个datetime.datetime对象?


datetime.datetime.fromtimestamp会做,如果你知道时区,你可以产生与time.gmtime相同的输出

>>> datetime.datetime.fromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 11, 19, 54)

要么

>>> datetime.datetime.utcfromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 10, 19, 54)

自从epoch到datetimestrftime以来的秒数:

>>> ts_epoch = 1362301382
>>> ts = datetime.datetime.fromtimestamp(ts_epoch).strftime('%Y-%m-%d %H:%M:%S')
>>> ts
'2013-03-03 01:03:02'

从文档中,建议自获得时区以来获得时区感知的datetime对象的方法是:

Python 3:

from datetime import datetime, timezone
datetime.fromtimestamp(timestamp, timezone.utc)

Python 2,使用pytz

from datetime import datetime
import pytz
datetime.fromtimestamp(timestamp, pytz.utc)
链接地址: http://www.djcxy.com/p/18485.html

上一篇: Initialize a datetime object with seconds since epoch

下一篇: How do you convert epoch time in C#?