【发布时间】:2012-08-13 08:21:51
【问题描述】:
我有一个 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 将不为零。
【问题讨论】:
-
我可能是错的,但我很确定“自纪元以来的秒数”总是根据 UTC 测量的。无论您在地球上的哪个位置,自纪元以来的秒数都是相同的,但是根据您当地的时区如何将其转换为一天中的一个小时是不同的。
-
我也不确定——因为 UTC 格式的 134250270000 打印一个值,而 PST 格式的 134250270000 打印另一个?如果是这样,请告诉我如何将自 134250270000 纪元以来的秒数转换为 PST 秒数。
-
这对我来说听起来是正确的行为。 UTC 与 GMT 相同,因此以 UTC 格式打印自纪元以来的秒数应该比以 PST 格式打印相同的值少几个小时。
-
您可以查看太平洋标准时间距 UTC on Wikipedia 有多少小时。有趣的是,PST 页面列出了美国太平洋时间、菲律宾和巴基斯坦的时区!
-
谢谢。问题是,当我将 UTC 日期/时间(例如 08/03/2012 00:00:00)转换为自纪元以来的秒数并转换回 UTC/PST 格式时 - 它们是不同的。有没有办法让使用 UTC 日期/时间计算的纪元以来计算的秒数给我 PST 日期/时间?还有不同的时区 - PDT / PST - 那么当我使用 UTC 日期/时间从纪元开始有秒数时,如何找到 PST / PDT 格式的确切时间?
标签: python