首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时区EST与EST5EDT有何不同?

时区EST与EST5EDT有何不同?
EN

Stack Overflow用户
提问于 2013-04-05 14:30:17
回答 1查看 29.9K关注 0票数 11

EST和EST5EDT有什么不同?EST不考虑DST吗?

我写了一小段java代码来找出不同之处,输出说EST5EDT考虑了DST,而EST没有。

代码语言:javascript
复制
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS"); 
dateFormat.setTimeZone(TimeZone.getTimeZone("EST5EDT")); 
System.out.println("EST5EDT" +dateFormat.format(new Date()));
    /* prints EST5EDT2013-Apr-05 02:24:16.471 */  


dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS"); 
dateFormat.setTimeZone(TimeZone.getTimeZone("EST")); 
System.out.println("EST "+dateFormat.format(new Date()));
   /*prints EST 2013-Apr-05 01:24:16.472 */

但是下面的代码片段产生了令人震惊的输出

代码语言:javascript
复制
System.out.println("EST5EDT offset "+TimeZone.getTimeZone("EST5EDT").getRawOffset()/(60*60*1000));
/* prints 5 instead of 4 (DST) */

有人能解释一下这里到底发生了什么吗?为什么getRawOffset返回5而不是4?如何使用DST获取时区偏移量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-05 14:33:38

不考虑东部夏令时吗?

不是的。根据定义,美国东部时间是“东部标准时间”或UTC-5:00。

美国东部时间是“东部夏令时”或UTC-4:00。

这有点令人困惑,因为例如,纽约在EST和EDT之间切换,而西雅图在PST和PDT之间切换。

有时,人们会错误地说“我会叫你东部时间下午1点”,而他们实际上是想说,“我会叫你东部时间下午1点”,这正确地考虑了是否是夏令时。

wikipage包含更多信息。

为什么getRawOffset返回5而不是4

Timezone.getRawOffset始终返回标准时间的毫秒数,即5* (60 * 60 * 1000)

由于协调世界时的偏移量会根据一年中的某一天而变化(以计算夏令时),因此您需要使用getOffset,并为其提供您想要使用的日期。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15827329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档