当我创建日历实例时,该月的第一天= 2
问题描述:
当我得到日历的实例时,根据文档,该月的第一天应该是1。当我创建日历实例时,该月的第一天= 2
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(cal.getTimeInMillis());
它打印 “1367366400”,这是 “04/30/13” 的时间戳,比前一个月的最后一天。
我可以将其设置为“2”,使用它像这样:
for (int i = 2; i <= 32; i++) {
但这只是看起来很奇怪! 有什么建议吗? 谢谢!
答
,而不是打印时间以毫秒和转换检查,打印日期,年份和月份是这样的:
System.out.println("Year: " + cal.get(Calendar.YEAR));
System.out.println("Month: " + (cal.get(Calendar.MONTH) + 1));
System.out.println("Days: " + cal.get(Calendar.DAY_OF_MONTH));
我想你的代码是好的。
+0
好吧,多亏了这个,我想这个问题在别的地方。 – joekeee 2013-05-02 09:07:15
您如何确定1367366400是“04/30/13”的时间戳? – 2013-05-02 08:40:58
我使用了http://www.onlineconversion.com/unix_time.htm,它给了我一个周三的日期,2013年5月1日00:00:00 GMT。也许你已经使用了一种在不同时区呈现当地时间的方法? – 2013-05-02 08:41:57
你是对的,它一定是unixtime转换器。 – joekeee 2013-05-02 09:05:23