首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strptime不匹配格式。

strptime不匹配格式。
EN

Stack Overflow用户
提问于 2018-10-06 19:58:39
回答 2查看 1.1K关注 0票数 3

这是我想要运行的代码

代码语言:javascript
复制
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给了我这个错误:

代码语言:javascript
复制
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之间更改日期,但没有区别)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-06 20:11:47

检查TZ环境变量的值。time.strptime使用TZ变量消除时区缩写的歧义,因为否则它们不会是唯一的。我可以用TZ=Europe/Berlin再现匹配错误,但是可以使用TZ=America/Tijuana获得一个成功的解析。

如果另一台机器拥有仅使用数字时区的TZ数据,则可能会出现另一种差异来源,这是对某些时区的最近一次更改(在2017年)(这也意味着这台机器上的时区数据库将非常过时)。

票数 2
EN

Stack Overflow用户

发布于 2018-10-06 20:20:35

如果将PDT替换为UTC,则解决方案有效--似乎无法识别PDT:

代码语言:javascript
复制
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

代码语言:javascript
复制
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/)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52682857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档