当前位置: 首页 > 面试题库 >

datetime.strptime奇怪的行为

岑彬炳
2023-03-14
问题内容

我在运行python 3.6.8的aws虚拟机上遇到以下错误,而在我的笔记本电脑上,它在python 3.6.1上正常运行

   return datetime.strptime(date_str, self.date_format)
  File "/usr/lib64/python3.6/_strptime.py", line 565, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/usr/lib64/python3.6/_strptime.py", line 362, in _strptime
    (data_string, format))
ValueError: time data 'Fri, 23 Aug 2019 20:24:46 IDT' does not match format '%a, %d %b %Y %H:%M:%S %Z'

我使用的格式有什么问题?


问题答案:

请参阅官方Python错误跟踪器上的讨论。显然%Z只支持UTCGMT以及当地时区(由返回time.tzname)。

这是一个有趣的案例,官方的Python文档具有误导性(说得很好):

%Z时区名称(如果对象是天真对象,则为空字符串)。(空),UTC,EST,CST

错了 %Z将只认ESTCST等等 ,如果他们是操作系统的本地时区

编辑 好吧,文档页面底部附近有一个注释,上面写着

%Z 如果tzname()返回None%Z则用空字符串替换。否则%Z由返回值替换,该值必须是字符串。

不过,目前尚不清楚。

明确说明:

它可在您的本地计算机上使用,因为它使用IDT作为其本地时区,而AWS远程计算机则不是这种情况。



 类似资料: