时间数据与 ec2 实例中 python 日期时间的格式不匹配
time data does not match format with python datetime in ec2 instance
以下代码适用于我的本地环境 macbook:
d_time = datetime.strptime(start_time.strip(), "%b %d %Y %I %M %p %Z")
但是当我尝试在一个 ec2 实例上 运行 它 ubuntu 它 returns:
File "/usr/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/usr/lib/python3.8/_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data 'Feb 12 2021 02 00 AM PST' does not match format '%b %d %Y %I %M %p %Z'
两个环境都在使用 python 3.8.5
你的问题是 %Z
不会解析像 PST
这样的时区缩写(它只适用于 GMT 和 UTC afaik)。查看 dateutil
的 parser - 在这里,您可以为缩写定义特定的映射。例如:
import dateutil
s = 'Feb 12 2021 02 00 AM PST'
tzmap = {'PST': dateutil.tz.gettz('US/Pacific')}
print(dateutil.parser.parse(s, tzinfos=tzmap))
# 2021-02-12 00:00:00-08:00
以下代码适用于我的本地环境 macbook:
d_time = datetime.strptime(start_time.strip(), "%b %d %Y %I %M %p %Z")
但是当我尝试在一个 ec2 实例上 运行 它 ubuntu 它 returns:
File "/usr/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/usr/lib/python3.8/_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data 'Feb 12 2021 02 00 AM PST' does not match format '%b %d %Y %I %M %p %Z'
两个环境都在使用 python 3.8.5
你的问题是 %Z
不会解析像 PST
这样的时区缩写(它只适用于 GMT 和 UTC afaik)。查看 dateutil
的 parser - 在这里,您可以为缩写定义特定的映射。例如:
import dateutil
s = 'Feb 12 2021 02 00 AM PST'
tzmap = {'PST': dateutil.tz.gettz('US/Pacific')}
print(dateutil.parser.parse(s, tzinfos=tzmap))
# 2021-02-12 00:00:00-08:00