这是将UTC字符串转换为允许夏令时的本地时间的正确方法吗?它看起来不错,但你永远不会知道:)
import time
UTC_STRING = "2010-03-25 02:00:00"
stamp = time.mktime(time.strptime(UTC_STRING,"%Y-%m-%d %H:%M:%S"))
stamp -= time.timezone
now = time.localtime()
if now[8] == 1:
stamp += 60*60
elif now[8] == -1:
stamp -= 60*60
print 'UTC: ', time.gmtime(stamp)
print 'Local: ', time.localtime(stamp)
Run Code Online (Sandbox Code Playgroud)
---新西兰的结果(GMT + 12 dst = 1)---
UTC: (2010, 3, 25, 2, 0, 0, 3, 84, 0)
Local: (2010, 3, 25, 15, 0, 0, 3, 84, 1)
Run Code Online (Sandbox Code Playgroud)
与时区相关的计算并不简单,并且已经有很好的库可用,例如使用pytz,使用它可以自信地从任何时区转换到任何其他时区.用法就像这样简单
>>> warsaw = pytz.timezone('Europe/Warsaw')
>>> loc_dt1 = warsaw.localize(datetime(1915, 8, 4, 23, 59, 59), is_dst=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |