Python:datetime.astimezone相对于US / Pacific和America / Los_Angeles时区的奇怪行为?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:datetime.astimezone相对于US / Pacific和America / Los_Angeles时区的奇怪行为?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1651字,纯文字阅读大概需要3分钟。
内容图文
![Python:datetime.astimezone相对于US / Pacific和America / Los_Angeles时区的奇怪行为?](/upload/InfoBanner/zyjiaocheng/792/cb5afce6f7174be9b47f0ceadbb6e4a2.jpg)
请观察:
C:\dev\poc\SDR>python
Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pytz import timezone
>>> from datetime import datetime
>>> tz1=timezone('America/Los_Angeles')
>>> tz2=timezone('US/Pacific')
>>> ts1=datetime(2011,8,1,tzinfo=tz1)
>>> ts2=datetime(2011,8,1,tzinfo=tz2)
>>> ts1
datetime.datetime(2011, 8, 1, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)
>>> ts2
datetime.datetime(2011, 8, 1, 0, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
>>> ts1.astimezone(tz1)
datetime.datetime(2011, 8, 1, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)
>>> ts2.astimezone(tz2)
datetime.datetime(2011, 8, 1, 0, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
>>> ts1.astimezone(tz2)
datetime.datetime(2011, 8, 1, 1, 0, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)
>>> ts2.astimezone(tz1)
datetime.datetime(2011, 8, 1, 1, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
>>>
这是我不明白的.美国/太平洋(tz1)和America / Los_Angeles(tz2)应该表示相同的时区,不是吗?那么为什么datetime.astimezone被调用从一个区域移动到另一个区域怎么改变小时呢?
谢谢.
解决方法:
夏令时.请注意,最后两个条目列出了PDT-1.
astimezone考虑了DST,但前提是它实际上是通过其完整逻辑.
在您的示例中,前两个astimezone调用不会通过完整逻辑,因为它们会短路(因为它们转换为“时区”已经与它们“转换”的时区匹配).
(你可能想知道为什么初始日期时间还没有使用PDT.这是因为datetime构造函数doesn’t take into account daylight savings time,即使你传递了一个时区 – 它只是盲目地设置时区.)
内容总结
以上是互联网集市为您收集整理的Python:datetime.astimezone相对于US / Pacific和America / Los_Angeles时区的奇怪行为?全部内容,希望文章能够帮你解决Python:datetime.astimezone相对于US / Pacific和America / Los_Angeles时区的奇怪行为?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。