这是将UTC日期时间字符串转换为本地时间的正确方法吗?

1 python time

这是将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)

Anu*_*yal 5

与时区相关的计算并不简单,并且已经有很好的库可用,例如使用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)

  • 我想挂一张海报,在那里我读"时钟编程并不简单!" (2认同)