time模块可以使用从epoch开始的秒数初始化:
>>> 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)
or
>>> datetime.datetime.utcfromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 10, 19, 54)
Datetime.datetime.fromtimestamp就可以了,如果您知道时区,那么您可以生成与time.gmtime相同的输出
>>> datetime.datetime.fromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 11, 19, 54)
or
>>> datetime.datetime.utcfromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 10, 19, 54)
对于那些希望它符合ISO 8601的人来说,因为其他解决方案没有T分隔符也没有时间偏移(除了Meistro的答案):
from datetime import datetime, timezone
result = datetime.fromtimestamp(1463288494, timezone.utc).isoformat('T', 'microseconds')
print(result) # 2016-05-15T05:01:34.000000+00:00
注意,我使用fromtimestamp是因为如果我使用utcfromtimestamp,我将需要链上.astimezone(…)来获得偏移量。
如果你不想一直到微秒,你可以选择一个不同的单位
isoformat()方法。