首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Calendar对象混淆

与Calendar对象混淆
EN

Stack Overflow用户
提问于 2015-04-19 22:02:03
回答 1查看 33关注 0票数 0

我有一个以毫秒为单位的日期时间。例如:1394504624657L,并使用以下代码将其转换为Calender对象。

代码语言:javascript
复制
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(millis);

上面可以是UTC或GMT。

代码语言:javascript
复制
1394504624657L represents Tuesday, March 11, 2014 2:23:44 AM GMT

然后我返回cal.get(Calendar.HOUR),它返回2,这是期望值。但是,当我删除区域并使用默认区域时,它会返回7。使用此功能的正确方式应该是什么?

当使用FastDateFormat时,我得到的日期值是"2014-3-11 2:23:44“,它的格式是"yyyy-MM-dd hh:mm:ss”。使用下面的代码,我再次创建了日历函数。

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();
FastDateFormat userSpecificFormat;
userSpecificFormat = FastDateFormat.getInstance("yyyy-MM-dd hh:mm:ss");
Date userSpecifiedDate = userSpecificFormat.parse("2014-3-11 2:23:44");
cal.setTime(userSpecifiedDate);

然后我返回cal.get(Calendar.HOUR),它返回2,这是期望值。但是如果我像这样设置区域(TimeZone.getTimeZone("UTC")),它会返回8,你可以看到它们是两种不同的行为。我对此真的很困惑。对澄清这种行为有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-20 02:34:23

解析格式和输入字符串可能不匹配。模式中的小时有两个字符,这意味着至少有两个数字。但是您的输入数据只有一位数表示小时。

这几个月也是一样。

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

https://stackoverflow.com/questions/29730878

复制
相关文章

相似问题

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