如何正确比较两个日期时间变量?

时间:2018-09-11 03:02:10

标签: python datetime

我想比较两个日期时间变量以检测当前时间是否在周末时间。

我的代码在这里:

def is_weekend_off(weekend_table, trading_timezone):
    now_trading_timezone = datetime.now(tz=trading_timezone)
    is_weekend = False
    for it in weekend_table:
        condition1 = it[0] <= now_trading_timezone
        condition2 = now_trading_timezone < it[1]
        condition3 = condition1 and condition2
        print('now = ' + str(now_trading_timezone))
        print('it[0] = ' + str(it[0]))
        print('it[1] = ' + str(it[1]))
        print('condition1 = ' + str(condition1))
        print('condition2 = ' + str(condition2))
        time.sleep(60)
        if condition3:
            tmp = True
        else:
            tmp = False
        is_weekend = is_weekend or tmp
    return is_weekend

结果在这里:

now = 2018-09-10 21:50:59.001475-05:00
it[0] = 2018-09-10 21:00:00-05:51
it[1] = 2018-09-10 22:00:00-05:51
condition1 = False
condition2 = True

据我所知,condition1应该为True,而不是False。如何更正此结果?

1 个答案:

答案 0 :(得分:3)

您的it[0]的时区为-05:51,因此,将时区为now_trading_timezone的{​​{1}}与-05:00进行比较时,it[0]有效地变为now_trading_timezone减去2018-09-10 21:50:59.001475分钟,等于51,小于20:59:59.001475-05:51的{​​{1}},导致it[0]的情况为{ {1}}。

要用2018-09-10 21:00:00-05:51来纠正False的时区,可以使用it[0] <= now_trading_timezone方法:

it[0]