带有 3 个字符时区和 AM/PM 的 strptime

strptime with 3 character timezone and AM/PM

根据 strptime 的文档,我相信我的代码对于 3 个字符的时区和 AM/PM.

是正确的

为什么 Python 2.5 和 Python 3.6 不像我使用的字符串时间格式?

import datetime
ts = datetime.datetime.strptime(
    "11/30/2017 01:08:05 PM CST", 
    '%m/%d/%Y %I:%M:%S %p %z'
)

import datetime
ts = datetime.datetime.strptime(
    "11/30/2017 01:08:05 PM CST", 
    '%m/%d/%Y %I:%M:%S %p %Z'
)

当运行同时return:

ValueError: time data '11/30/2017 01:08:05 PM CST' does 
not match format '%m/%d/%Y %I:%M:%S %p %Z'

CST 等符号时区不会被 strptime 解析。此外,它们相对没有意义。是 CST:

  • 中部标准时间;或者
  • 中国标准时间;或者
  • 古巴标准时间。

要处理您的情况,您应该考虑使用 dateutil.parser,并为您希望支持的时区指定一个 tzinfo