Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python strTime未分析时区EST%z_Python_Python 3.x_Datetime_Python 3.7_Strptime - Fatal编程技术网

Python strTime未分析时区EST%z

Python strTime未分析时区EST%z,python,python-3.x,datetime,python-3.7,strptime,Python,Python 3.x,Datetime,Python 3.7,Strptime,我试图使用Python 3.7将字符串“10/23/2019 6:02:05 PM EST”解析为带时区的日期时间 代码: 错误: ValueError: time data '10/23/2019 6:02:05 PM EST' does not match format '%m/%d/%Y %I:%M:%S %p %Z' 当我创建日期时间并使用相同的格式输出它时,我得到了正确的输出。唯一的区别是在小时前面有一个0,但是在我的日期字符串中的6前面添加0会导致相同的错误 我目前的解决方案是在没

我试图使用Python 3.7将字符串“10/23/2019 6:02:05 PM EST”解析为带时区的日期时间

代码:

错误:

ValueError: time data '10/23/2019 6:02:05 PM EST' does not match format '%m/%d/%Y %I:%M:%S %p %Z'
当我创建日期时间并使用相同的格式输出它时,我得到了正确的输出。唯一的区别是在小时前面有一个0,但是在我的日期字符串中的6前面添加0会导致相同的错误

我目前的解决方案是在没有时区的情况下解析datetime,然后对其进行本地化,但这并不理想

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)```
试试看


您可以尝试此方法。

合理的预期是,解析包含时区的字符串将生成一个时区感知的datetime对象。

这种格式似乎适用于UTC,但其他时区没有尝试过EST、CST、IST。这会忽略时区并生成一个时区初始日期时间,除非输入EST以外的时区,否则不会出错,但也不会正确传递时间戳,因为它没有传递时区。
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)```
>>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