首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的日期时间解析

Java中的日期时间解析
EN

Stack Overflow用户
提问于 2013-03-12 18:46:49
回答 3查看 1K关注 0票数 3

根据这个代码..。

代码语言:javascript
复制
 String date = "11:00 AM";

 SimpleDateFormat sdf = new SimpleDateFormat("h:mm a");

 sdf.setTimeZone(TimeZone.getTimeZone("US/Eastern")); // --> should be GMT-4

 TimeZone.setDefault(TimeZone.getTimeZone("GMT"));

 Date parse = sdf.parse(date); // -- gives Thu Jan 01 16:00:00 GMT 1970

为什么日期解析给我16:00而不是15:00?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-12 19:17:12

您不能仅使用java.util.Date来存储时间。它将指定1970年,这在某些情况下是不正确的。我建议使用org.joda.time.LocalTime

票数 1
EN

Stack Overflow用户

发布于 2013-03-12 19:03:58

日光节约也要考虑在内。这应该会给你你所期望的

sdf.setTimeZone(TimeZone.getTimeZone("EST5EDT"));

票数 0
EN

Stack Overflow用户

发布于 2013-03-12 20:47:07

如果您不提供任何日期部分,默认情况下,它将被分配默认的Epoche standard date(01 Jan 1970 00:00 Hours称为Epoche standard time,并将其作为标准来度量所有与时间相关的计算(作为基准时间)。

java.util.Date类的getTime()方法返回给定date(including time also)Epoche standard( 01 Jan 1970 00:00 Hours)之间的总毫秒数。尽管您没有使用getTime()方法,因此它在这里无关紧要。所以,简单地说,你得到的是时间。根据格林尼治标准时间的说法,这是正确的。

我想这会对你有帮助的。

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

https://stackoverflow.com/questions/15359096

复制
相关文章

相似问题

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