【问题标题】:How to solve datetime format error "time data %r does not match format %r"?如何解决日期时间格式错误“时间数据 %r 与格式 %r 不匹配”?
【发布时间】:2022-08-19 10:52:41
【问题描述】:

我正在尝试将日期从字符串格式转换为日期时间格式。我认为我使用了正确的格式,但错误仍然存​​在。

代码示例:

from datetime import datetime, timedelta

format = \"%Y-%m-%dT%H:%M:%S.000Z\"
inctime=\'2022-03-21T19:55:23.577Z\'

time=datetime.strptime(inctime,formato2)

错误:

Traceback (most recent call last):
File \"<stdin>\", line 1, in <module>
File \"C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\lib\\_strptime.py\", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File \"C:\\Users\\user1\\AppData\\Local\\Programs\\Python\\Python310\\lib\\_strptime.py\", line 349, in _strptime
raise ValueError(\"time data %r does not match format %r\" %
ValueError: time data \'2022-03-21T19:55:23.577Z\' does not match format \'%Y-%m-%dT%H:%M:%S.000Z\'
  • datetime.strptime(\'2022-03-21T19:55:23.577Z\',\"%Y-%m-%dT%H:%M:%S.%fZ\")
  • 577Z 不是 000Z

标签: python python-3.x datetime datetime-format python-datetime


【解决方案1】:

您的代码没有正确读取微秒。您可以使用%f 读取微秒

尝试使用此代码,这将解决问题:

from datetime import datetime, timedelta


inctime='2022-03-21T19:55:23.577Z'
format = "%Y-%m-%dT%H:%M:%S.%fZ"

time = datetime.strptime(inctime,format)

【讨论】:

    【解决方案2】:

    我认为这应该有效。

    from datetime import datetime, timedelta
    
    format_data = "%Y-%m-%dT%H:%M:%S.%fZ"
    inctime='2022-03-21T19:55:23.577Z'
    
    time=datetime.strptime(inctime,format_data)
    
    print(time)
    

    输出:

    2022-03-21 19:55:23.577000
    

    【讨论】:

      猜你喜欢
      • 2019-07-08
      • 1970-01-01
      • 2017-11-29
      • 2022-06-10
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多