android - Android 的日期类中的年份不正确

标签 android date gregorian-calendar

我正在尝试比较日期,我发现我的代码哪里出错了,但我不知道为什么。

我正在尝试将日期与今天的日期进行比较(仅使用公历)。我已经打印出代码中提到的今天的日期,并且在一个地方它神奇地从 2010 年更改为 3910 年(今天的年份 + 1900)。

有人知道这是什么原因吗?

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 2010
System.out.println(todaysDate);

//Getting a year from a string (it is 2010)
todaysDate.setYear(Integer.parseInt(yea));

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 3910   
System.out.println(todaysDate);

最佳答案

日期通常存储为“自 1900 年以来的年数”,因此您需要对此进行补偿。您可以在 Date 的文档中看到:http://developer.android.com/reference/java/util/Date.html

编辑:我应该提及我发表的评论。 Jeff Sharkey 建议不要使用 Calendar 类(如果您也在使用它)。 android.text.format.DateUtils 轻量级得多(您会发现,当您首次加载 Calendar 类时,手机会稍微卡顿一下,尤其是在旧手机上)。 DateUtils 在 Android 1.5 及更高版本中可用。

关于android - Android 的日期类中的年份不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961785/

相关文章:

r - 如何在给定的任意年份中获得去年的相同工作日?

android - 如何使用 ListView 的 onitemclicklistener 更改仅选定 ListView 行的布局

android - 如何在删除 Realm 文件之前在 Android 中备份 Realm DB。有什么办法可以恢复备份文件吗?

PHP DateTime::createFromFormat 忽略闰年

java - 日期到 XMLGregorianCalendar 转换给出错误结果

java - 将 GregorianCalendar 转换为 XMLGregorianCalendar

java - 为什么我的 Java Calendar.setTime() 偶尔会设置错误的时间?

android - 添加 Firebase In-App Messaging 依赖项会导致 DexArchiveMergerException

安卓 ImageView : How can I get the current rotation angle?

java - 是否可以覆盖 Orika 的内置转换器 - XMLGregorianCalendar 到 java.util.Date?