奇怪的 python 时区行为。有人可以解释一下吗
我正在尝试生成特定时区的时间。我在美国/纽约说“09:00:00”。我想用今天的日期和“美国/纽约”时区的给定时间生成一个日期时间...
所以我尝试了这个..
import pytz
from datetime import datetime, time
nytz = pytz.timezone( "America/New_York" )
nynow = datetime.now().astimezone( nytz )
nine_am = time( 9, 0, 0, 0 )
ny9am = datetime.combine( nynow.date(), nine_am, nytz )
print( nynow )
print( ny9am )
但它打印出一些奇怪的东西,我无法解决。
2022-03-25 08:53:45.984502-04:00
2022-03-25 09:00:00-04:56
我不知道 :56 是从哪里来的。如果我现在尝试将该时间转换为英国时间...
uk_ny9am = ny9am.astimezone( pytz.timezone( "Europe/London" ) )#
print( uk_ny9am )
我得到的
2022-03-25 13:56:00+00:00
时间是 56 分钟..英国/美国只有 4 或 5 小时不同,所以我不知道 python 是什么正在做..
任何想法!
I'm trying to generate a time in a particular timezone. I am given, say "09:00:00" in America/New_York. I'd like to generate a datetime with todays date and the given time in the "America/New_York" timezone...
So I tried this..
import pytz
from datetime import datetime, time
nytz = pytz.timezone( "America/New_York" )
nynow = datetime.now().astimezone( nytz )
nine_am = time( 9, 0, 0, 0 )
ny9am = datetime.combine( nynow.date(), nine_am, nytz )
print( nynow )
print( ny9am )
But it prints out something strange and I can't work it out.
2022-03-25 08:53:45.984502-04:00
2022-03-25 09:00:00-04:56
I've no idea where the :56 is coming from. If I try now and convert that time into, say into UK time...
uk_ny9am = ny9am.astimezone( pytz.timezone( "Europe/London" ) )#
print( uk_ny9am )
I get
2022-03-25 13:56:00+00:00
which, at the present time, is 56 minutes out.. UK / US are only ever 4 or 5 hours different so I have no idea what python is doing..
Any ideas !!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上,经过更多搜索后,我发现了这个...
pytz 的奇怪时区问题
似乎总结得很好。
Actually, after doing some more searching I found this...
Weird timezone issue with pytz
Seems to sum it up nicely.