Python 3.4 使用或不使用 '%z' 给出相同的纪元时间?
Python 3.4 giving same epoch time with or without '%z'?
我的代码在 python 3 上运行,给出纪元时间 - 然而,无论 z 的值如何,它都给出相同的时间 1389458028 - 下面是我的代码:
import time
def epoch_time():
d = '11/Jan/2014:08:33:48 -0500'
p='%d/%b/%Y:%H:%M:%S %z'
aa = int(time.mktime(time.strptime(d , p)))
return aa
print (epoch_time())
应该如何解决?
time.strptime()
解析时区,但 time.mktime()
不使用 struct_time 对象中的 tm_gmtoff
字段。正如文档所说,它与 localtime() 相反,不关心时区。
您可以使用 datetime
模块
import datetime
def epoch_time(d):
p = '%d/%b/%Y:%H:%M:%S %z'
a = datetime.datetime.strptime(d, p)
aa = a.timestamp()
return aa
或使用 time.strptime()
结果的 tm_gmtoff 字段和您当地的时区来计算您获得的时间戳与实际 UTC 时间戳之间的偏移量。
我的代码在 python 3 上运行,给出纪元时间 - 然而,无论 z 的值如何,它都给出相同的时间 1389458028 - 下面是我的代码:
import time
def epoch_time():
d = '11/Jan/2014:08:33:48 -0500'
p='%d/%b/%Y:%H:%M:%S %z'
aa = int(time.mktime(time.strptime(d , p)))
return aa
print (epoch_time())
应该如何解决?
time.strptime()
解析时区,但 time.mktime()
不使用 struct_time 对象中的 tm_gmtoff
字段。正如文档所说,它与 localtime() 相反,不关心时区。
您可以使用 datetime
模块
import datetime
def epoch_time(d):
p = '%d/%b/%Y:%H:%M:%S %z'
a = datetime.datetime.strptime(d, p)
aa = a.timestamp()
return aa
或使用 time.strptime()
结果的 tm_gmtoff 字段和您当地的时区来计算您获得的时间戳与实际 UTC 时间戳之间的偏移量。