【发布时间】:2020-09-09 23:22:23
【问题描述】:
我有一个带有一系列时间戳的 .csv,格式为 HH:MM:SS。令人讨厌的是,小时的格式是用午夜表示的 24 而不是 00。
通常我会使用:datetime.strptime('24:00:00', '%H:%M:%S'),但这会引发 ValueError,因为 24 未被识别为有效小时。
有没有一种简单的方法可以在不操作字符串的情况下做到这一点?
【问题讨论】:
我有一个带有一系列时间戳的 .csv,格式为 HH:MM:SS。令人讨厌的是,小时的格式是用午夜表示的 24 而不是 00。
通常我会使用:datetime.strptime('24:00:00', '%H:%M:%S'),但这会引发 ValueError,因为 24 未被识别为有效小时。
有没有一种简单的方法可以在不操作字符串的情况下做到这一点?
【问题讨论】:
我认为使用日期时间库没有简单的方法。你可以查看datetime.strptimehere的源代码;相关的正则表达式在第 188 行。最简单的解决方案可能是字符串操作。
timestamp = '24:00:00'
if timestamp[:2] == '24':
timestamp = '00' + timestamp[2:]
#as a oneliner
timestamp = '00' + timestamp[2:] if timestamp[:2] == '24' else timestamp
【讨论】: