【发布时间】:2021-08-06 16:01:21
【问题描述】:
我正在尝试转换以下字符串列表:
['0:00:01.138000', '0:00:03.733000', '0:00:01.250000', '0:00:01.127000']
但是当我尝试以下代码时:
T = '%H:%M:%S.%f'
for i in range(len(Normal_key)):
try:
Normal_key[i]=datetime.strptime(Normal_key[i], T)
except ValueError:
continue
print(Normal_key)
由于某种原因,该列表现在包含数据信息,即使没有指定日期:
[datetime.datetime(1900, 1, 1, 0, 0, 1, 138000), datetime.datetime(1900, 1, 1, 0, 0, 3, 733000), datetime.datetime(1900, 1, 1, 0, 0, 1, 250000)]
【问题讨论】:
-
这只是添加的默认日期;你可以使用
datetime.strptime(Normal_key[i], T).time()去掉日期 -
它仍然返回相同的格式。
-
您现在应该有时间对象而不是日期时间对象。您究竟期望什么“格式”?
-
我想得到毫秒,为此,以下工作:(datetime.strptime(Normal_key[i], T).time().microsecond/1000))
-
好的,所以您实际处理的是持续时间(Python 中的
timedelta)。请注意,如果小时超过 23,datetime.strptime方法将失败。您可能还想看看this question。
标签: python string list datetime type-conversion