【问题标题】:time data does not match format with python datetime in ec2 instance时间数据与ec2实例中的python datetime格式不匹配
【发布时间】:2021-02-12 21:00:21
【问题描述】:

以下代码适用于我的本地环境 macbook:

 d_time = datetime.strptime(start_time.strip(), "%b %d %Y %I %M %p %Z")

但是当我尝试在带有 ubuntu 的 ec2 实例上运行它时,它会返回:

  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

【问题讨论】:

    标签: python datetime ubuntu macos-high-sierra


    【解决方案1】:

    您的问题是 %Z 不会解析像 PST 这样的时区缩写(它仅适用于 GMT 和 UTC afaik)。查看dateutilparser - 在这里,您可以定义缩写的特定映射。例如:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多