Python strptime无法解析时区EST %z

3
我是一位中文翻译助手,以下是您需要翻译的内容。该段代码想要将字符串“10/23/2019 6:02:05 PM EST”使用Python 3.7解析为带有时区的日期时间。
代码:
from datetime import datetime
timestamp = datetime.strptime(date_str, '%m/%d/%Y %I:%M:%S %p %Z')

错误:

ValueError: time data '10/23/2019 6:02:05 PM EST' does not match format '%m/%d/%Y %I:%M:%S %p %Z'

当我创建一个日期时间并使用相同的格式输出时,会得到正确的输出。唯一的区别是小时前面有一个0,但在我的日期字符串中加上0会导致相同的错误。我的当前解决方法是在不带时区的情况下解析日期时间,然后再进行本地化,但这并不理想。
date_lst = date.split()
date_str = ' '.join(date_lst[0:3])
timestamp = datetime.strptime(date_str, '%m/%d/%Y %I:%M:%S %p')
new_tz = pytz.timezone(date_lst[3])
timestamp_tz = new_tz.localize(timestamp)```

看起来这种格式适用于UTC,但不适用于其他时区(已尝试过EST、CST、IST)。 - undefined
2个回答

0

可以合理地期望,解析包含时区的字符串将生成一个具有时区意识的日期时间对象。


-1

试一下

>>timestamp = datetime.strptime('10/23/2019 6:02:05 PM EST', '%m/%d/%Y %I:%M:%S %p EST')

>>2019-10-23 06:02:05

你可以试试这个。

这会忽略时区并生成一个不带时区信息的日期时间,除非输入的时区不是EST,否则不会出错,但也无法正确传递时间戳,因为没有传递时区信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接