kis*_*rgy 2 python timezone datetime dst python-2.7
我想通过这种方式将带有US/Eastern时Budapest/Europe区的日期时间转换为时区:
import pytz
from datetime import datetime
ET = pytz.timezone('US/Eastern')
CET = pytz.timezone('Europe/Budapest')
time = datetime(2013, 04, 18, 0, 0, tzinfo=ET)
newTime = time.astimezone(CET)
Run Code Online (Sandbox Code Playgroud)
这导致newTime为:datetime.datetime(2013, 4, 18, 7, 0, tzinfo=<DstTzInfo 'Europe/Budapest' CEST+2:00:00 DST>),但它应该2013,04,18,6,0根据time.is和timeanddate.com转换器.我做错了什么?
这是因为夏令时问题.传递的时间datetime是,而ET不是EDT结果.
看一下pytz文档,首选的方法是使用localize方法,而不是传递tzinfo.如果您修改代码以使用以下行,您将获得预期的结果:
time = ET.localize(datetime(2013, 04, 18, 0, 0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |