【发布时间】:2019-01-27 01:46:48
【问题描述】:
我正在尝试将字符串列表转换为日期时间。
这是我正在处理的数据示例:x = ['59:55:00', '59:55:00', '59:58:00', '1:00:02', '1:00:05', '1:01:26']
例如,列表应该反映 59 分 58 秒到 1 小时 0 分 5 秒。
我知道这是一种古怪的格式,但我正在玩我已经处理过的那手牌。一旦我得到大于 59 分钟的值,我不确定如何处理数据。
我尝试使用:
from datetime import datetime
for i in x:
datetime_object = datetime.strptime(i, '%M:%S:%f')
print(datetime_object)
我的结果是:
1900-01-01 00:59:55
1900-01-01 00:59:55
1900-01-01 00:59:58
1900-01-01 00:01:00.020000
1900-01-01 00:01:00.050000
1900-01-01 00:01:01.260000
我想将我的输出保持在分钟和秒。
例如1:01:26 将是00:61:26
所以我想要的输出看起来像:
1900-01-01 00:59:55
1900-01-01 00:59:55
1900-01-01 00:59:58
1900-01-01 00:60:02
1900-01-01 00:60:02
1900-01-01 00:61:26
非常感谢任何帮助或指导!
【问题讨论】:
-
是否保证一旦从 %M:%S:%f 转换到 %H:%M:%S 就不会回到以前的格式?
-
您的数据不明确。 @ChrisHunt 对如何消除歧义有一个好主意。但需要回答他的问题。
-
您可以使用
timedelta对象并使用total_seconds()方法计算秒数、分钟数和小时数。 -
@ChrisHunt 数据不会回到以前的格式
标签: python datetime python-datetime timedelta