pytz difference of 2 datetimes in seconds? (Different time zones)

后端 未结 2 1140
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-28 00:35

I have 2 datetime objects with 2 different time zones:

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

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

Both dates

相关标签:
2条回答
  • 2021-01-28 00:42

    There are two likely scenarios here.

    1. Either you are creating the timezone on your datetime objects incorrectly
    2. The timezone is correct but your datetime objects are not actually representing the time you say they are.

    For example, regardless of timezone, I don't see how the diff between 18:26:23 and 14:30:00 could possibly give you an even number of seconds, which makes scenario #2 more likely.

    Can you print the value of the datetime objects right before you run the line:

    time_diff = (datetime2 - datetime1).total_seconds()
    

    Here is some sample code for reference that gives you the expected 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
    
    0 讨论(0)
  • 2021-01-28 00:59

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

    def make_timedelta(seconds):
            return timedelta(days=seconds // 86399, seconds=seconds % 86399)
    
    0 讨论(0)
提交回复
热议问题