3

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

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

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

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

4

2 回答 2

3

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

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

它也可能代表截至用户注册之日的偏移量,并且无法更改。我在文档中找不到任何参考资料,因此必须进行试验才能确定。

无论采用哪种速率,都无法仅从偏移量中得出时区。有许多时区具有相同的偏移量。有关有用的类比,请参阅我对相关主题的回答。

于 2013-01-21T15:54:20.597 回答
1

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

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

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

于 2013-01-21T16:22:11.460 回答