我正在尝试下面的代码,尽管格式似乎正确,但似乎抛出了错误:
from datetime import datetime
utc_time1 = datetime.strptime("2019-07-12T05:49:55:2771249Z", "%Y-%m-%dT%H:%M:%S:%fZ")
print(utc_time1)
utc_time2 = datetime.strptime("2019-07-12T05:49:55.2771249Z", "%Y-%m-%dT%H:%M:%S.%fZ")
print(utc_time2)
我收到以下错误:
Traceback (most recent call last): File "C:/Users/bhatak/PycharmProjects/untitled/test.py", line 3, in <module> utc_time1 = datetime.strptime("2019-07-12T05:49:55:2771249Z", "%Y-%m-%dT%H:%M:%S:%fZ") File "C:\Users\bhatak\AppData\Local\Programs\Python\Python37-32\lib\_strptime.py", line 577, in _strptime_datetime tt, fraction, gmtoff_fraction = _strptime(data_string, format) File "C:\Users\bhatak\AppData\Local\Programs\Python\Python37-32\lib\_strptime.py", line 359, in _strptime (data_string, format)) ValueError: time data '2019-07-12T05:49:55:2771249Z' does not match format '%Y-%m-%dT%H:%M:%S:%fZ'
答案 0 :(得分:1)
根据文档,https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
与strptime()方法一起使用时,%f指令接受来自 右边是一到六位数和零填充。 %f是对 C标准中的格式字符集(但已实现 分别放在日期时间对象中,因此始终可用)。
您的毫秒数有7位数字,%f表达式最多可以有6位数字。如果删除最后一个,则不会有任何问题。
277124而不是2771249。