android - 为什么保存日期的当前年份为3912?

标签 android date calendar

获取当前日期和时间

final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);

创建当前日期对象

Date toDate;
     toDate.setYear(mYear);
     toDate.setMonth(mMonth);
     toDate.setDate(mDay);



Date endDate = toDate;

打印 endDate 对象时我得到了

Mon Jan 01 13:11:00 GMT+03:00 3912

为什么?

最佳答案

来自 Date.setYear(int) 描述:为此 Date 对象设置自 1900 年以来的公历年份。因此,1900 + 2012 = 3912

但是 calendar.get(Calendar.YEAR) 返回准确的年份 2012。因此,API 的这种不一致导致了您的问题。但无论如何 Date.setYear(int) 已被弃用,因此,最好使用 Calendar 对象进行日期计算。

关于android - 为什么保存日期的当前年份为3912?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8692850/

相关文章:

android - 使android应用程序从rails表中获取数据

java - 尝试从私有(private)类获取共享首选项值时出错

java - UTC 字符串日期到本地日期

sql - 无法从表格中获取正确的日期

ruby-on-rails - 如何在 rails 中创建 ICS 并将其作为邮件附件发送?

java - Android - 静态嵌套类(上下文)

java - 分配二维数组分配额外内存的问题

两个日期戳之间的MySQL时间选择

javascript - FullCalendar:使用 Google 日历事件的位置属性

java - 如何在 Java 中验证 long 为日期