我正在运行一个来自世界各地的人访问的世界目标网站。该数据库包含国际日期行西格式的时间。我正在使用JavaScript使用用户时区,并将数据库中的时间转换为用户的时间,然后在页面上显示。我想问一下,国际日期线西是世界级网站的正确格式?或者设置为UTC或GMT会更好? UTC和GMT以及International Date Line West有什么区别?这三个一样吗?最后,我应该在什么时候将我的服务器设置为使用用户时区偏移进行转换?GMT是否和UTC相同?
回答
如果您对天文观测(例如GPS等卫星)感兴趣,或者您想引用技术标准(ITU-R TF.460-6),那么您可能会关心我们使用UTC和格林尼治标准时间不再有精确的定义。否则,您可能会认为GMT与UTC相同,并且也认为UT和UT1与UTC相同 - 技术上它们不是。另外,如果您正在跟踪计算机犯罪分子或其他分布式活动,那么您需要确定在某些其他事件之前,各个站点的某些事件是否可能发生。为此,您需要学习和使用网络时间协议(NTP)。这对你对时间的理解要比UTC,UT1和UT之间的微小差异更大。
“International Date Line West”(国际日期行西)只是时区的友好名称,其时间定义为比UTC小12小时(即UTC-12)。
UTC实际上是GMT的新名称。它有很小的差异,但是没有一个会在这种情况下影响你。
塞维的评论是完全错误的说格林尼治标准时间包括夏时制。这是一个叫做BST的不同时区,英国在夏季从格林尼治标准时间开始移动。
通常,当您必须向不同时区的人员呈现日期或时间时,您应该做的就是在数据库中保存UTC的所有时间信息并将其转换为显示图层上的用户时区(当您将信息呈现给您的用户)
但是你会发现几个挑战: - 你的JavaScript中得到的时区可能不可信赖 - 通过IP查找用户的位置,然后让该时区也不可信
在我看来,一个好方法是使用“最佳猜测”来查找默认时区(javascript时区应该足够了),并让用户能够主动配置他的时区。
在某些谷歌应用程序中,他们的方法是在开始之前提示用户输入他的时区,这应该只在您可以保证每次用户访问您的网站时不必重复此操作(通过用户帐户或饼干)
但是在这种情况下,我们必须为注册的未注册和数据库条目设置cookie。但就我的经验而言,有些人甚至不知道时区是什么? ...那么他们呢?所以我们要照顾所有这些问题 – 2013-02-20 17:50:08
你错过了。所有日期和时间信息在数据库中保存为UTC。当用户访问您的网站时,您将该日期时间信息转换为用户的时区。这个想法是为了保证他不必知道很多关于时区的信息,所有提交给他的日期和时间都在他的时区。 – cernunnos 2013-02-20 17:57:56
我不这么认为。因为我的数据库不能节省UTC时间。它节省了我当地的时间。那就是印度时间。 – 2013-02-20 18:34:29
- 1. 端点总是UTC/GMT
- 2. php时区“等/ GMT + 5”相当于UTC(“Etc/UTC + 5”?)
- 3. 将GMT从GMT转换为UTC
- 4. UTC/GMT:获得抵消
- 5. UTC TO GMT转换在Javascript
- 6. UTC与GMT - 的Java对.Net
- 7. 从GMT转换为UTC
- 8. 关于区分UTC和GMT的常见做法是什么?
- 9. uintptr_t和size_t是否相同?
- 10. UNIX_TIMESTAMP()和time()是否相同
- 11. 具有相同GMT偏移量的时区是否有任何不同?
- 12. c#GMT时间与UTC时间相当吗?
- 13. 是(int *)和(int [])是否相同?
- 14. NSDate dateWithTimeIntervalSince1970不返回GMT/UTC时间
- 15. 的Javascript倒数计时器在GMT/UTC
- 16. 转换UTC GMT + 0200为本地时间
- 17. Android从GMT毫秒获得UTC毫秒
- 18. Android中的GMT与UTC的区别
- 19. 历史时间GMT \ UTC与DST
- 20. 什么是不同的时刻()。utc()。toISOString()和moment()。utc()。format()
- 21. Jodatime DateTimeFormatter需要打印GMT时间,而不是UTC
- 22. MySQL缺省时间格式UTC还是GMT?
- 23. 输出时间自定义格式(GMT而不是UTC)
- 24. Rails time_zone_select下拉菜单显示GMT而不是UTC
- 25. NSTimeZone:“UTC”和“GMT”之间的任何区别?
- 26. 在C/C++中在本地时间和GMT/UTC之间转换
- 27. UUID和设备令牌是否相同?
- 28. CAST和CONVERT在SQL中是否相同?
- 29. Thread.sleep(0)和Thread.yield()语句是否相同?
- 30. quadprog和frontcon在Matlab中是否相同?
从我的理解,UTC是格林威治标准时间,但没有夏令时。不过,我很久以前就知道要远离凌乱的日期时间问题。 – Servy 2013-02-20 17:23:48
简短回答是的。长回答没有。格林威治标准时间从来没有“夏令时”,那么它被称为“BST”或其他名称,所以这不是问题。最主要的是格林尼治标准时间和UTC可以相差不超过500毫秒。 – 2013-02-20 17:23:56
@Servy - 在英国夏令时开始时,我们将时区移至BST(GMT + 1)。 – Quentin 2013-02-20 17:24:57