2014-12-02 45 views
-2

我使用Calendar c = Calendar.getInstance()来存储当前日期。但是,当我尝试查看我发现一个错误。Java中的日历错误

c.get(Calendar.MONTH+1)是egual到49

为什么?

谢谢。

+5

您认为'c.get(Calendar.MONTH + 1)'应该返回什么?为什么? – 2014-12-02 16:57:16

回答

5

您通过+1的参数get

c.get(Calendar.MONTH) + 1 

会给你MONTHCalendar.MONTH + 1是3或Calendar.WEEK_OF_YEAR

+0

谢谢你解决我的问题! – user3253955 2014-12-02 17:26:22

2

Calendar.MONTH只是简单地调用类Calendar中相应名称MONTH的字段,它只是一个整数。展望Calendar类(和过滤掉一些文件),我们可以看到日历的getset方法的定义如下:

public final static int ERA = 0; 
public final static int YEAR = 1; 
public final static int MONTH = 2; 
public final static int WEEK_OF_YEAR = 3; 
public final static int WEEK_OF_MONTH = 4; 
public final static int DATE = 5; 
etc... 
2

试试这个:

// using Calendar class 
Calendar ci = Calendar.getInstance(); 

String CiDateTime = "" + ci.get(Calendar.YEAR) + "-" + 
(ci.get(Calendar.MONTH) + 1) + "-" + 
ci.get(Calendar.DAY_OF_MONTH) + " " + 
ci.get(Calendar.HOUR) + ":" + 
ci.get(Calendar.MINUTE) + ":" + 
ci.get(Calendar.SECOND); 

代码的输出上面:

2014-12-2 10:46:56

+0

也许你应该说,'12'并不意味着'12月'。 – Tom 2014-12-02 17:25:14