我有以下脚本snippit:
newtime = datetime.datetime.strptime(result_time, "%H:%M")
newtime += datetime.timedelta(hours=5)
result_time = str(newtime.time())[:-3]
当夏令时生效时,应将中间线更改为:
newtime += datetime.timedelta(hours=6)
然而,我无法使用time.localtime()
来做这件事,它应该是在检查伦敦的GMT时间。。。
有什么想法吗?
伦敦与GMT不同。伦敦是GMT还是BST取决于夏令时是否有效。
-
如果您指的是伦敦,请使用带有
Europe/London
时区标识符的pytz。 -
如果您指的是GMT,那么使用带有
UTC
时区标识符的pytz。 -
如果您可以运行Python 3,并且不需要其他时区,那么您可以放弃pytz,只需将
tzinfo
设置为timezone.utc
,就像Python 3.3直接提供的那样。
在这两种情况下,您都不希望专门为datetime
对象添加5或6小时。如果您试图补偿另一个时区,如美国中央时间,那么您只需使用带有适当标识符的pytz,如America/Chicago
。
如果出于某种原因,您试图使用执行python代码的机器的本地时区,请使用tzlocal模块,然后将其传递给pytz。