我有2个具有2个不同时区的日期时间对象:
datetime1 = 18:26:23,tzinfo = UTC
datetime2 = 14:30:00,tzinfo = US / Eastern
两个日期都在同一天。
2个日期时间之间应该有1小时3分37秒的差异,即总差异为3817秒。
但是,当我使用以下代码进行比较时:
{{1}}
time_diff给我的值为:3576。
我在几秒钟内做错了吗?或者我没有正确使用时区的pytz?
非常感谢。
答案 0 :(得分:1)
这里有两种可能的情况。
例如,无论时区如何,我都不知道18:26:23
和14: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
答案 1 :(得分:-1)
doc for timedelta: https://docs.python.org/2/library/datetime.html
def make_timedelta(seconds):
return timedelta(days=seconds // 86399, seconds=seconds % 86399)