Python:strptime()format-timezone字段未按预期工作

时间:2017-12-06 00:08:33

标签: python datetime time

我正在尝试使用以下代码将给定的自定义格式日期字符串解析为纪元时间:

time_tuple = time.strptime('Tue Dec 05 13:01:48 PST 2017', '%a %b %d %X %Z %Y')
time_epoch = time.mktime(time_tuple)

给定的日期格式如代码所示。我面临的问题是当代码编译时我不断收到错误说:

 ValueError: time data 'Tue Dec 05 13:01:48 PST 2017' does not match format '%a %b %d %X %Z %Y'

从我所看到的,格式似乎完全符合:https://docs.python.org/3/library/datetime.html

看起来有什么不对?

编辑: 我已经尝试过使用datetime而不是时间,但是没有工作

time_tuple = datetime.strptime('Tue Dec 05 13:01:48 PST 2017', '%a %b %d %X %Z %Y')

根据以下评论,似乎时区字段(%Z)导致问题。看起来该字段基于代码运行的时区,而不是输入字符串给出的时区。

1 个答案:

答案 0 :(得分:0)

您使用的时区与文档中描述的时区不同,但是,如果您更改时区,则可以尝试:

import time
time_tuple = time.strptime('Tue Dec 05 13:01:48 EST 2017', '%a %b %d %X %Z %Y')
time_epoch = time.mktime(time_tuple)