Facebook API,时区和国家/地区

我正在开发一个网站,用户可以使用他们的Facebook凭据登录。

现在我面临着日期和时间的问题。 我的本地系统使用“浪漫标准时间”,这与Facebook使用的不同。

我在本地的地方使用DST,根据一年中的时间,我们可以是UTC + 1或UTC + 2。

我的问题是,“我如何将Facebook时间转换为我的本地系统将使用的格式,考虑到UTC + 1和UTC + 2之间的偶然变化?”

根据此文档 ,用户更改时区的唯一方法是更改​​其计算机的时区并注销并重新登录Facebook。 这将使我相信他们只是在浏览器中从JavaScript中取消了UTC的偏移并将其传递回服务器。

因此,从Facebook Graph API返回的timezone字段的值可能是用户上次登录时的偏移量。

它也可能代表用户注册日期的偏移量,并且无法更改。 我在文档中找不到任何引用,因此必须进行实验才能确定。

无论哪种速率,都无法单独从偏移中推导出时区。 有许多时区具有相同的偏移量。 有用的类比,请参阅我在这里相关主题的答案。

处理Facebook时代很困难。 这是我的经历:

  • 如果您获得了24个字符的ISO 8601时间戳,如2013-01-17T08:00:00+0000 ,则会定义与UTC的偏移量。 您只需要解析它并将其转换为您的本地偏移量。
  • 如果你得到一个Unix时间戳,如1358694451 ,它在PHP中定义为America/Los_Angeles的时区中。
  • 如果您获得的ISO 8601时间戳不超过19个字符,例如2013-01-172013-01-17T08:00:00 ,则时间相对于具有该时间的对象的区域设置, 或者对象是没有区域设置,那么它位于America/Los_Angeles时区。

我不是ac#developer,但是这篇MSDN文章可能对转换时区有所帮助。 http://msdn.microsoft.com/en-us/library/bb397769.aspx