这是我想要运行的代码
from datetime import datetime
date="08/30/2017 10:02 pm (PDT)"
dt = datetime.strptime(date, '%m/%d/%Y %I:%M %p (%Z)')日期是一个值为08/30/2017 10:02 PM (PDT)的字符串。
在我看来,这很好,但是python给了我这个错误:
time data '08/30/2017 10:02 PM (PDT)' does not match format '%m/%d/%Y %I:%M %p (%Z)' 代码运行在带有python2.7的远程计算机上。但是,如果我手动将这些代码输入本地python终端中。它工作得很好。
有什么东西可以改变吗?(我试图在unicode/str之间更改日期,但没有区别)
发布于 2018-10-06 20:11:47
检查TZ环境变量的值。time.strptime使用TZ变量消除时区缩写的歧义,因为否则它们不会是唯一的。我可以用TZ=Europe/Berlin再现匹配错误,但是可以使用TZ=America/Tijuana获得一个成功的解析。
如果另一台机器拥有仅使用数字时区的TZ数据,则可能会出现另一种差异来源,这是对某些时区的最近一次更改(在2017年)(这也意味着这台机器上的时区数据库将非常过时)。
发布于 2018-10-06 20:20:35
如果将PDT替换为UTC,则解决方案有效--似乎无法识别PDT:
from datetime import datetime
date="08/30/2017 10:02 pm (UTC)"
dt = datetime.strptime(date, '%m/%d/%Y %I:%M %p (%Z)')
print(dt) # 2017-08-30 22:02:00与
date="08/30/2017 10:02 pm (PDT)"
dt = datetime.strptime(date, '%m/%d/%Y %I:%M %p (%Z)')
print(dt) # time data '08/30/2017 10:02 pm (PDT)' does not match format '%m/%d/%Y %I:%M %p (%Z)'( 2.7模式下的https://pyfiddle.io/)
https://stackoverflow.com/questions/52682857
复制相似问题