两个日期时间的时差以秒为单位?(不同时区)



我有两个datetime对象和两个不同的时区:

datetime1 = 18:26:23, with tzinfo = UTC

datetime2 = 14:30:00, with tzinfo = US/Eastern

两个日期在同一天。

两个日期时间之间应该有1小时3分37秒的差,即:3817秒的总差。

但是,当我使用以下代码进行比较时:

time_diff = (datetime2 - datetime1).total_seconds()

time_diff给出的值为:3576。

我把秒差做错了吗?或者我没有正确地使用pytz作为时区?

许多谢谢。

这里有两种可能的情况。

  1. 你在datetime对象上创建的时区不正确
  2. 时区是正确的,但是你的datetime对象实际上并不代表你所说的时间。

例如,不管时区如何,我不明白18:26:2314:30:00之间的差异如何可能给您偶数秒,这使得场景#2更有可能出现。

您可以在运行这行之前打印datetime对象的值吗?

time_diff = (datetime2 - datetime1).total_seconds()

下面是一些示例代码供参考,它们给出了预期的秒数:

from pytz import timezone
from datetime import datetime
eastern = timezone('US/Eastern')
utc = timezone('UTC')
datetime1 = utc.localize(datetime(2002, 10, 27, 18, 26, 23))
datetime2 = eastern.localize(datetime(2002, 10, 27, 14, 30, 00))
time_diff = (datetime2 - datetime1).total_seconds()
print(time_diff)  # prints 3817

doc for timedelta:https://docs.python.org/2/library/datetime.html

def make_timedelta(seconds):
        return timedelta(days=seconds // 86399, seconds=seconds % 86399)

相关内容

  • 没有找到相关文章

最新更新