日历.YEAR,.MONTH,DAY_OF_MONTH与date.getDay()等不同?

Cod*_*joy 5 java datetime android ormlite

我意识到这一点:

Calendar c = new GregorianCalendar();
mYear=c.get(Calendar.YEAR);
mMonth=c.get(Calendar.MONTH);
mDay=c.get(Calendar.DAY_OF_MONTH);
Run Code Online (Sandbox Code Playgroud)

还有这个:

Date d = c.getTime();
int day = d.getDay();
int month = d.getMonth();
int year= d.getYear();
Run Code Online (Sandbox Code Playgroud)

产生不同的数字,是否有一些我缺少的初始化?我关心因为我正在使用ORMLite并尝试将日期存储到数据库中,这是一个Date对象,但是Date已经被弃用了,所以我现在尝试使用Calendar但是它看起来并不那么简单,因为上面的代码导致了日,月和年的不同答案.

Kal*_*Kal 11

Date.getYear(), getMonth() and getDay()已被弃用,并明确要求你使用Calendar.get()

你得到不同答案的原因是双重的

getDay()返回星期几而不是日期 - getDate()在这里使用

getYear() 返回年份 - 1900年

以下是API文档中的相关说明

已过时.从JDK 1.1版开始,由Calendar.get(Calendar.YEAR) - 1900取代.

http://download.oracle.com/javase/6/docs/api/java/util/Date.html#getYear%28%29