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)
引用:
以
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