Python CI中的datetime.strTime失败

Python CI中的datetime.strTime失败,python,datetime,python-3.6,Python,Datetime,Python 3.6,我有以下仅在CI中发生的错误: ValueError: time data '09.30.2019 17:50 EDT' does not match format '%m.%d.%Y %H:%M %Z' 这是我的测试: def test_extract_time_from_page(pjm_html): expected_time = datetime.strptime("09.30.2019 17:50 EDT", "%m.%d.%Y %H:%M %Z") res = de

我有以下仅在CI中发生的错误:

ValueError: time data '09.30.2019 17:50 EDT' does not match format '%m.%d.%Y %H:%M %Z'
这是我的测试:

def test_extract_time_from_page(pjm_html):
    expected_time = datetime.strptime("09.30.2019 17:50 EDT", "%m.%d.%Y %H:%M %Z")
    res = demand.extract_time_from_page(pjm_html)

    assert res == expected_time
它在当地通行。我不确定在CI环境中运行时会有什么不同


编辑:我可以通过将我的机器时区更改为EDT以外的其他时区来复制此功能。您不能将与当前时区不同的时区用于
datetime。strtime

pytz lib可能有问题。比较CI worker和本地的pytz库。您可以找到一个解释,指出EDT是一个不推荐使用的时区。您可以尝试在CI worker上更新pytz库。

这是一个带有
%Z
指令的程序。当前的文档令人困惑,需要对文档进行修订。挂起的文档更改解释了您遇到的问题:

请注意,
strtime
只接受
%Z
的某些值:
UTC
GMT
,以及
time.tzname
中为您自己定义的内容 地区。对于任何无效字符串,它将返回一个
ValueError
。对于 例如,居住在日本的人将拥有
UTC
GMT
JST
作为有效值,但可能不是
EST


我选择从字符串中去掉%Z值并使用pytz对其进行本地化:
expected_time=timezone('US/Eastern')。本地化(datetime(2019,9,30,17,25),is_dst=True)