1

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

我正在尝试将日期与今天的日期进行比较(仅使用公历)。我已经打印了代码中提到的今天的日期,并且在一个地方它神奇地从 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);
4

1 回答 1

8

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

编辑:我应该提到我作为评论发布的内容。Jeff Sharkey 建议不要使用 Calendar 类(如果你也在使用它)。android.text.format.DateUtils 更轻量级(当您第一次加载 Calendar 类时,您会看到手机会停顿一点,尤其是在旧手机上)。DateUtils 在 Android 1.5 及更高版本中可用。

于 2010-10-18T17:52:39.470 回答