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

时间:2011-07-28 15:25:33

标签: java android datetime ormlite

我意识到了这一点:

Calendar c = new GregorianCalendar();
mYear=c.get(Calendar.YEAR);
mMonth=c.get(Calendar.MONTH);
mDay=c.get(Calendar.DAY_OF_MONTH);

而且:

Date d = c.getTime();
int day = d.getDay();
int month = d.getMonth();
int year= d.getYear();

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

1 个答案:

答案 0 :(得分: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