哪一种是自定义的,通过书本的方式获取用户的本地时间/时区?(或者:谷歌/脸书是怎么做到的?)


Which is the custom, by-the-book way to get user local time / time zone? (Or: How might Google / Facebook do it?)

我知道这里已经问过好几次了,但我仍然不清楚"按书"定制的方法。

我正在设计一款应用程序,它需要知道用户的确切当地时间。我在研究这个时真的很困惑:

大多数有经验的SO用户建议只询问用户的时区。其他人建议使用Javascript时区偏移方法。另一种方法是使用地理定位。

例如,脸书上的帖子和Gmail邮件显示了当地的确切时间,包括夏令时和其他一切。这些应用程序从未向我询问过我的时区。他们可以使用哪种方法?

或者,在上述和其他方法中,哪种方法是自定义的、"按书"的方式来使用和存储用户的本地时间

在我看来,最好的方法是让用户选择自己的时区。

我总是使用地理位置来获得起点,然后让用户确认他们需要什么。

这允许用户选择快速的"点击确认"选项,但如果不正确,仍然允许用户进行更改。考虑到用户可能从不是自己时区的位置注册/登录,但他们希望将时间/日期视为在自己的时区,这一点非常好。

这可能不是"按书"的方式,但我觉得它提供了最好的用户体验,这在一天结束时应该始终是首要任务!

我已经明确告诉谷歌我的时区是什么,因为我和我的电脑经常移动,我实际上想要两个时区,而不仅仅是一个(用于谷歌日历)。所以我喜欢这个选项。我认为,尝试使用地理位置或类似的方法默认为合理的猜测可能比总是假设美国东部时间或其他什么更好,但一旦你做到了,就考虑存储结果以供将来使用,直到用户明确更改它。如果它只是因为用户接入了一个地理位置不好的网络(这些确实存在)而更改,可能会让人迷失方向。