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

时间:2010-10-18 17:41:35

标签: 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);

1 个答案:

答案 0 :(得分:8)

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

的文档中看到这一点 编辑:我应该提一下我发表的评论。 Jeff Sharkey建议不要使用Calendar类(如果你也使用它)。 android.text.format.DateUtils更轻量级(当你第一次加载Calendar类时,你会发现手机有点停滞,特别是在旧手机上)。 DateUtils适用于Android 1.5及更高版本。