【问题标题】:Adding and substracting hours to a 24 hour time in python?在 python 中添加和减去 24 小时时间?
【发布时间】:2013-10-16 01:44:31
【问题描述】:

我需要从字符串"03:40"中减去5个小时

我尝试了以下方法:

import datetime

timevar = "03:40"
newtime = datetime.datetime.date.strftime("%H:%M", timevar)
newtime = newtime - datetime.timedelta(hours=5)
print newtime

我已阅读 datetime 文档,但我仍然看不出我做错了什么。

非常感谢任何帮助。
- 海福克斯

【问题讨论】:

    标签: python datetime python-2.7 strftime strptime


    【解决方案1】:

    您遇到了一些问题...首先,您要查找的是strptime,而不是strftime。其次,strptimedatetime.datetime 上的方法,而不是datetime.datetime.date。第三,你把论点的顺序搞混了。这应该是你想要的:

    newtime = datetime.datetime.strptime(timevar, "%H:%M")
    newtime -= datetime.timedelta(hours=5)
    

    *注意,这会为您提供大约 1900 年 1 月 1 日左右的日期部分。看起来您只需要时间部分,所以这可能无关紧要 -- 但我认为值得一提。

    【讨论】:

    • 也许 OP 想打印 newtime.time() 而不是 newtime
    • @Hyperboreus -- 同意。或者,then OP 可以使用strftime 来格式化日期时间,但要适当:)。
    • @mgilson 我现在在使用strftime 将其转换为%H:%M 时遇到问题
    • @Hyflex -- 它应该只是newtime.strftime('%H:%M')。返回值是一个字符串。
    • 感谢您的回答!我迫切需要一些将小时数作为字符串类型处理的 python 行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多