将字符串解析为 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)
我有一个这种格式的约会
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)