0

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

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

编辑::

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 时间吗?

编辑::

也许这是正确的:

>>> import time
>>> offset = time.timezone if (time.daylight == 0) else time.altzone
>>> offset / 60 / 60
7

如果夏令时当前有效,time.daylight 将非零。

4

1 回答 1

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。

编辑:我错过了文档中说仅​​在非零时使用的altzonedaylight。如果你住在有夏令时的地方,显然它比我想象的要复杂一些。如果您需要处理此问题,请参阅此帖子:

Python:根据 DST 获取时间戳的时区

于 2012-08-13T08:57:56.520 回答