Facebook API,时区和国家

本文关键字:国家 时区 API Facebook | 更新日期: 2023-09-27 17:54:46

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

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

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

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

Facebook API,时区和国家

根据本文档,用户更改其时区的唯一方法是更改其计算机的时区,然后注销并重新登录到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时区。

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