从PST/PDT(Facebook时间戳)转换为UTC

2024-04-19 22:35:50 发布

您现在位置:Python中文网/ 问答频道 /正文

Facebook API(使用FQL)提供了基于太平洋时区的时间戳。它代表自1970年1月1日以来的秒数。 我住在法国,夏天的时间是GMT+2,冬天是GMT+1。所有基于本地的datetime/time函数都能很好地处理这种“夏季时间变化”。在

你已经知道了,我试着把Facebook返回的时间戳转换成法国时间。今天我发现Facebook为我的7月15日星期五21:00(法国时间显示在Facebook网站上)返回1310788800。 Facebook详细说明他们的时区是PST(GMT-8h)。1310788800是7月15日星期五,UTC的20:00,在法国是22:00。在

所以他们多了一个小时,我得出了以下结论:

  • 或者facebook不是基于PST而是基于PDT(考虑到一个夏天) 时间魔法改变了他们所有的日期-这似乎不现实)
  • 或者在Facebook上不考虑法国夏季的变化 网站和数据库
  • 这都意味着Facebook的API很难被人们使用 从他们的服务器和Facebook的时间管理是用脚编码的

不管怎样,问题是一样的。我想在冬天和夏天转换这个日期。为此,我必须将此时间视为基于PDT的时间,并将其转换为UTC时间。在

您是否有使用python将PDT更改为UTC的提示?在

谢谢你的帮助!在


Tags: 函数apidatetimefacebooktime网站时间代表
2条回答

我必须使用pytz

from datetime import *
from pytz import timezone
import pytz

[...]

if (not isinstance(pacificTime, int)):
    pacificTime = int(pacificTime)
originalTimeZone = "America/Los_Angeles"
print datetime.fromtimestamp(pacificTime, pytz.timezone(originalTimeZone))

这个解决方案来自我以前的帖子:Changing a unix timestamp to a different timezone

希望能有所帮助

要在python中将PDT更改为UTC,请使用pytz。在

但facebook的API似乎比这更棘手。见Facebook Events and timezones, how to convert UTC datetime to what facebook expects?

相关问题 更多 >