2013-05-02 73 views
0

当我得到日历的实例时,根据文档,该月的第一天应该是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++) { 

但这只是看起来很奇怪! 有什么建议吗? 谢谢!

+0

您如何确定1367366400是“04/30/13”的时间戳? – 2013-05-02 08:40:58

+1

我使用了http://www.onlineconversion.com/unix_time.htm,它给了我一个周三的日期,2013年5月1日00:00:00 GMT。也许你已经使用了一种在不同时区呈现当地时间的方法? – 2013-05-02 08:41:57

+0

你是对的,它一定是unixtime转换器。 – joekeee 2013-05-02 09:05:23

回答

1

,而不是打印时间以毫秒和转换检查,打印日期,年份和月份是这样的:

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

相关问题