python datatime模块实现时间戳和本地时间、UTC时间之间的互相转化
- 如何获得unix timestamp
dt=datetime.datetime.now() #获取本地当前时间
dt.timestamp() #获取时间戳
注意:时间戳为当前时刻减去UTC时间(1970.1.1)零点时刻的秒数差,与当前系统所处的时区无关,同一时刻不管在任何时区下得到的时间戳都是一样的。
无论是获取本地当前时间还是获取utc时间dt=datetime.datetime.now(timezone.utc),所获得的时间戳都是相同的。
- 通过timestamp得出datetime和utc datetime
- timestamp转datetime
datetime.datetime.fromtimestamp(timestamp) #获得本地时间,类型naive datetime obiect
- timestamp转utc datetime
两种方式获得utc时间,但datetime object类型不一样。
方式一:
datetime.datetime.utcfromtimestamp(timestamp) #类型naive datetime object
方式二:
datetime.datetime.fromtimestamp(timestamp,timezone.utc) #类型aware datetime object。
类型naive datetime object 时间有效期是1970~2038。
总结:
- timestamp没有时区之分,不要认为不同时区有不同的时间戳。
- datetime object有两种类型,就算显示的值一样,不同类型的object也不能直接进行数学运算