如何获得一天的第一个约会时间?

如何获得一天的第一个约会时间?,第1张

如何获得一天的第一个约会时间

使用

localize()
方法附加时区

from datetime import datetimeimport pytz # $ pip install pytztz = pytz.timezone('America/Sao_Paulo')    naive = datetime(2014, 10, 19)aware = tz.localize(naive, is_dst=None)

如果运行代码;它产生

NonExistentTimeError
。如何处理此错误取决于应用程序,例如,在午夜附近获取一些有效的本地时间:

aware = tz.normalize(tz.localize(naive, is_dst=False))

或者,您可以逐分钟增加时间,直到获得有效的当地时间(圣保罗):

from datetime import datetime, timedeltaimport pytz # $ pip install pytztz = pytz.timezone('America/Sao_Paulo')d = naive = datetime(2014, 10, 19)while True:    try:        aware = tz.localize(d, is_dst=None)    except pytz.AmbiguousTimeError:        aware = tz.localize(d, is_dst=False)        assert tz.localize(d, is_dst=False) > tz.localize(d, is_dst=True)        break    except pytz.NonExistentTimeError:        d += timedelta(minutes=1) # try future time        continue    else:        break

结果:

>>> awaredatetime.datetime(2014, 10, 19, 1, 0, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRST-1 day, 22:00:00 DST>>>> aware.strftime('%Y-%m-%d %H:%M:%S %Z%z')'2014-10-19 01:00:00 BRST-0200'

注意:第一个有效时间是

01:00
当天。时区比UTC落后两个小时(本地= utc-2)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存