将字符串解析为 Python 中的日期时间

Parsing string into datetime in Python

我有一个这种格式的约会

October 14, 2014 1:35PM PDT

我的 python 脚本中有这个

import time

u_date = 'October 14, 2014 1:35PM PDT'

print  time.strptime(u_date,"%b %d, %y %I:%M%p %Z")

结果我得到了这个错误

ValueError: time data u'October 14, 2014 1:35PM PDT' does not match format '%b %d, %y %I:%M%p %Z'

任何人都可以向我解释为什么会这样吗?我是 python 的新手,如有任何帮助,我们将不胜感激。

您的格式不正确; %b 需要一个 缩写的 个月,但是你有一个完整的月份,需要 %B,并且你有一个 完整的 4 位数年份,所以使用 %Y,而不是 %y

time 库无法解析时区,但是,您必须在此处删除 %Z 部分并删除最后的字符才能使其正常工作:

>>> time.strptime(u_date[:-4], "%B %d, %Y %I:%M%p")
time.struct_time(tm_year=2014, tm_mon=10, tm_mday=14, tm_hour=13, tm_min=35, tm_sec=0, tm_wday=1, tm_yday=287, tm_isdst=-1)

您可以使用 dateutil library instead to parse the full string, it'll produce a datetime.datetime object 而不是时间结构:

>>> from dateutil import parser
>>> parser.parse(u_date)
datetime.datetime(2014, 10, 14, 13, 35)