Python将UTC转换为PST / PDT格式

时间:2012-08-13 08:21:52

标签: python

我有一个网络应用程序,通过JS脚本捕获日期/时间,并计算自UTC格式的纪元以来的秒数 - ex 134250270000.在后端,我们有一个Python脚本,从DB获取数据,但日期/时间存储在数量中自PST格式以来的秒数如果从纪元开始算起,UTC和PST之间的秒数总是不同。

有没有什么方法可以将UTC时间从纪元转换为纪元以来的时钟到PST秒?我们还需要注意PST时区的日光变化吗?

EDIT ::

I have the seconds since epoch in UTC format:

1342502700

I found that I get the sum in seconds between UTC and local standard time via:

>>> time.timezone / 3600
8

So If I add 1342502700 to time.timezone:

>>> print 1342502700 + time.timezone
1344153600

它总能正确地给我PDT / PST时间吗?

EDIT ::

也许这是正确的:

>>> import time
>>> offset = time.timezone if (time.daylight == 0) else time.altzone
>>> offset / 60 / 60
7
如果夏令时当前有效,则time.daylight将为非零。

1 个答案:

答案 0 :(得分:0)

我认为在转换的某个地方有一个隐含的时区会让事情搞得一团糟。无论如何,我认为您正在寻找的是time.altzone

>>> from time import *
>>> ctime(time())
'Mon Aug 13 16:54:02 2012'
>>> ctime(time()+altzone)
'Mon Aug 13 08:54:04 2012'

我现在在台北时间,所以当地时间(第一次)晚于UTC。

编辑: 如果altzone非零,我在文档中错过了仅使用daylight的内容。显然,如果你住在夏令时的某个地方,它会比我想象的要复杂一点。如果您需要处理,请参阅此帖:

Python: get timezone based on DST for a timestamp