5

我意识到这一点:

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 但它似乎并不那么简单,因为上面的代码导致日、月、年的不同答案。

4

1 回答 1

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

于 2011-07-28T15:38:07.743 回答