python datetime模块:timestamp转为本地时间(东八区)

一般timestamp时间戳格式为10位,如果是13位,则需要除以1000,

1554369904000
为例,计算这个数字的本地时间。
 
如果使用
t=1554369904000
datetime.datetime.fromtimestamp(t/1000)
 
得到的是:
(2019, 4, 4, 17, 25, 4)
 
然而这个时间并不是我想要的,和我想要的时间差了8个时区。
 
那么可以使用
datetime.datetime.utcfromtimestamp(t/1000)
这个返回的就是我想要的时间了
(2019, 4, 4, 9, 25, 4)
 
 
引用:
timestamp转换为datetime
要把timestamp转换为datetime,使用datetime提供的fromtimestamp()方法:

>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t))
2015-04-19 12:20:00
注意到timestamp是一个浮点数,它没有时区的概念,而datetime是有时区的。上述转换是在timestamp和本地时间做转换。

本地时间是指当前操作系统设定的时区。例如北京时区是东8区,则本地时间:

2015-04-19 12:20:00
实际上就是UTC+8:00时区的时间:

2015-04-19 12:20:00 UTC+8:00
而此刻的格林威治标准时间与北京时间差了8小时,也就是UTC+0:00时区的时间应该是:

2015-04-19 04:20:00 UTC+0:00
timestamp也可以直接被转换到UTC标准时区的时间:

>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t)) # 本地时间
2015-04-19 12:20:00
>>> print(datetime.utcfromtimestamp(t)) # UTC时间
2015-04-19 04:20:00

 
 

0 个评论

要回复文章请先登录注册