美文网首页
python时间戳、datetime和时区

python时间戳、datetime和时区

作者: codeTo | 来源:发表于2018-06-19 12:36 被阅读26次
from datetime import datetime, timezone, timedelta
import time

current_utc_time = datetime.utcnow().timestamp()
current_time = datetime.now().timestamp()

print(int(current_utc_time*1000))
print(datetime.fromtimestamp(current_utc_time))
print(datetime.utcfromtimestamp(current_utc_time))

print(int(current_time*1000))
print(datetime.fromtimestamp(current_time))
print(datetime.utcfromtimestamp(current_time))

结果是

1529353757477
2018-06-19 04:29:17.477108
2018-06-18 20:29:17.477108
1529382557477
2018-06-19 12:29:17.477108
2018-06-19 04:29:17.477108

但是我的认知中,timestamp是与时区无关, 应该是不会改变的
所以这个结果为什么两次输入的timestamp不一样

经过查找资料

一个datetime类型有一个时区属性tzinfo,但是默认为None,所以无法区分这个datetime到底是哪个时区,除非强行给datetime设置一个时区:

所以应该这么写

from datetime import datetime, timezone, timedelta
import time

current_utc_time = datetime.utcnow().replace(tzinfo=timezone.utc).timestamp()
current_time = datetime.now().timestamp()


print(int(current_utc_time*1000))
print(datetime.fromtimestamp(current_utc_time))
print(datetime.utcfromtimestamp(current_utc_time))

print(int(current_time*1000))
print(datetime.fromtimestamp(current_time))
print(datetime.utcfromtimestamp(current_time))

最后的结果是

1529382917895
2018-06-19 12:35:17.895815
2018-06-19 04:35:17.895815
1529382917895
2018-06-19 12:35:17.895815
2018-06-19 04:35:17.895815

相关文章

网友评论

      本文标题:python时间戳、datetime和时区

      本文链接:https://www.haomeiwen.com/subject/aljaeftx.html