Python-时间数据与窗体不匹配

2024-04-27 00:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的字符串时间

2016-12-10T13:54:15.294

我正在使用以下方法格式化时间:

time.strptime(ts, '%b %d %H:%M:%S %Y')

会引发错误:
time data did not match format: data=2016-12-10T13:54:15.294 fmt=%a %b %d %H:%M:%S %Y

你知道我错在哪里吗?


Tags: 方法字符串formatdatatime格式match错误
3条回答

我认为字符串中指定的日期格式不正确。这应该有效:

import datetime
a = '2016-12-10T13:54:15.294'
b= datetime.datetime.strptime(a,'%Y-%m-%dT%H:%M:%S.%f')
print b

首先需要将字符串解析为其格式,然后按所需方式打印出来。

>>> import datetime
>>> ts = "2016-12-10T13:54:15.294"
>>> parsed = datetime.datetime.strptime(ts, '%Y-%m-%dT%H:%M:%S.%f')
>>> parsed
datetime.datetime(2016, 12, 10, 13, 54, 15, 294000)
>>> parsed.strftime('%b %d %H:%M:%S %Y')
'Dec 10 13:54:15 2016'

错误没有错,格式字符串甚至不接近您要分析的字符串。

您有{year}-{month}-{day}T{hour}:{minute}:{second}.{milliseconds},但试图用{weekday name} {month name} {day} {hour}:{minute}:{second} {year}来解析它。你是从什么地方抄来的吗?

According to the documentation,格式字符串应该更像%Y-%m-%dT%H:%M:%S.%f

>>> time.strptime('2016-12-10T13:54:15.294', '%Y-%m-%dT%H:%M:%S.%f')
time.struct_time(tm_year=2016, tm_mon=12, tm_mday=10, tm_hour=13, tm_min=54, tm_sec=15, tm_wday=5, tm_yday=345, tm_isdst=-1)

相关问题 更多 >