正在尝试生成一个正常运行时间命令(在上午12点之后转换为1天)

2024-04-19 07:11:08 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,这很好的工作,但是在12点之后,它将它转换为-1天,这是令人沮丧的,因为我不知道如何编辑它,使它不这样做。我如何解决这个问题

from datetime import datetime


with open("bot uptime.txt", "w") as f:
    f.writelines(datetime.now().time().strftime('%H:%M:%S')) # on startup of bot write the time in a file

timenow = datetime.now().time().strftime('%H:%M:%S') # finds time now


file = open("bot uptime.txt")
startuptime = file.readline() # reads the startup time
print(startuptime)

s1 = startuptime
s2 = timenow
FMT = '%H:%M:%S'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT) # calculates the difference between the two times
print(tdelta)

1条回答
网友
1楼 · 发布于 2024-04-19 07:11:08

我不知道为什么要将时间转换为%H:%M:%S,丢失诸如月份、月份和年份之类的信息。如果您从Dec 24, 23:30:00开始,并在``Dec 25,00:30:00`检查,您正在丢弃日期信息的事实意味着计算将是:

  2020-12-25 00:30:00
- 2020-12-25 23:30:00
  ===================
            -23:00:00

(或者其他一些负值,我还没有详细检查,但它将是一些不好的东西)

我建议只存储从纪元开始的秒数(当然是UTC,所以像int(time.time())这样的东西就足够了),然后使用它计算差值。这将考虑日期/时间的所有相关项目

相关问题 更多 >