【问题标题】:strftime with midnight formatted as '24' rather than '00'午夜的 strftime 格式为“24”而不是“00”
【发布时间】:2020-09-09 23:22:23
【问题描述】:

我有一个带有一系列时间戳的 .csv,格式为 HH:MM:SS。令人讨厌的是,小时的格式是用午夜表示的 24 而不是 00。

通常我会使用:datetime.strptime('24:00:00', '%H:%M:%S'),但这会引发 ValueError,因为 24 未被识别为有效小时。

有没有一种简单的方法可以在不操作字符串的情况下做到这一点?

【问题讨论】:

    标签: python datetime strftime


    【解决方案1】:

    我认为使用日期时间库没有简单的方法。你可以查看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
    

    【讨论】:

    • 但是您必须在结果中添加一天。 2020-09-09 24:00 是 2020-09-10 00:00。
    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2021-04-30
    相关资源
    最近更新 更多