通过考虑时区比较时间



根据Python和Google App Engine中的将UTC转换为本地时间到UTC,为了正确比较现在的时间和目标时间(考虑不同的时区),我必须将目标时间转换为UTC,如下所示:

import pytz
def toUTC(date, tz):
    tz = pytz.timezone('Asia/Taipei')
    utc = pytz.timezone('UTC')
    d_tz = tz.normalize(tz.localize(date))
    d_utc = d_tz.astimezone(utc)
    return d_utc
days = 10
minutes = 20
targetTime = datetime.datetime(2012,12,22,0,0,0)
targetTime = targetTime + datetime.timedelta(days=days, minutes=minutes)
targetTime = toUTC(targetTime) 
if targetTime < datetime.datetime.now():
    ...

问题:

  1. 正确吗?
  2. 有一个错误信息:

    TypeError: can't compare offset-naive and offset-aware datetimes

    如何解决?

这是因为其中一个datetime对象有时区集,而另一个没有。
看看这里和这里

最新更新