将日期转换为unix时间戳并格式化时,将增加一个小时。我做错了什么?
>>> import dateutil.parser
>>> import datetime
>>> date_str = "2014-12-09T19:00:00+1100"
>>> date = dateutil.parser.parse(date_str)
>>> unix = int(date.strftime('%s'))
>>> date_str
'2014-12-09T19:00:00+1100'
>>> date
2014-12-09 19:00:00+11:00
>>> print(unix)
1418115600
>>> datetime.datetime.fromtimestamp( unix).strftime('%Y-%m-%d %H:%M:%S')
2014-12-09 20:00:00
时间已从19:00更改为20:00。我怀疑这与时区有关。但是我不知道到底是哪里出了问题。
我使用了Epoch计算器来验证unix时间戳。似乎是在将date变量转换为unix时间戳的过程中添加了一个小时。(日期= dateutil.parser.parse(date_str))
任何帮助表示赞赏!
您可以通过执行以下操作从datetime对象获取Unix时间戳:
import pytz
timestamp = int((datetime_obj - datetime.datetime(1970, 1, 1, tzinfo=pytz.utc)).total_seconds())
这需要pytz库。我们使用的total_seconds()
是Python 2.7+。
在您的情况下,您将获得与原始日期时间匹配的时间戳1418112000。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句