【问题标题】:UTC conversions over two days with datetime.now()两天内使用 datetime.now() 的 UTC 转换
【发布时间】:2023-03-18 11:16:01
【问题描述】:

我的脚本尝试确定当前时间是否介于这两个时间字段之间:execute_beforeexecute_after

一个简单的execute_after <= datetime.now() <= execute_before 适用于一般情况,例如

execute_after = '08:00:00'
execute_before = '18:00:00'

但是execute_after和execute_before之间的时间跨度跨越2天的情况会导致问题,我似乎无法找到解决方法。

问题:

execute_after = '19:00:00'
execute_before = '05:00:00'

预期输出:

Time difference: '10:00:00'

任何帮助将不胜感激。

【问题讨论】:

  • 是的,好吧......没有日期的时候会这样做。 execute_afterexecute_before 是什么类型的值?您如何从数据库中检索它们?你在使用datetime 对象吗?字符串?请阅读How to Ask。理想情况下,我们希望看到minimal reproducible example
  • 如果是跨日,可能需要将列类型从时间更改为日期时间
  • 您在寻找modular arithmetic吗? (18 - 8) % 24 == 10(5 - 19) % 24 == 10。如果这是在正确的轨道上,我可以把一个完整的答案放在一起。

标签: python utc


【解决方案1】:

算法:

if execute_before < execute_after
    execute_before = execute_before + 24:00:00

difference = execute_before - execute_after

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2010-12-18
    • 2017-12-16
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多