0

我在 Java 中有一个 Date 对象。有时日期的年份设置为 17。当我使用 SimpleDateFormat 输出它时,它被打印为 0017。我所有的年份都将在 2000 年代。有没有办法检查年份是否低于某个值,如果是,则添加 2000?那么一旦你这样做了,你如何重新创建 Date 对象以使用新年?似乎 Date 对象中的所有内容都已弃用。

4

4 回答 4

3

我会使用日历:

Date myDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
int year = cal.get(Calendar.YEAR);
if(year < 2000)
    cal.add(Calendar.YEAR, 2000); // add two thousand years
于 2012-07-19T15:42:52.720 回答
2

如果您使用日历或 Joda Time(更好的选择),您可以获取和设置年份(或其他字段)

首先,您的年份不应该是 17 岁。我会尝试从源头上纠正问题,而不是稍后修补它。

于 2012-07-19T15:40:08.073 回答
1

首先,Date.getYear 返回 CurrentYear - 1900,而不是 2000,看起来您每次都希望进行增量。

但是由于它已被弃用,如果可能的话,你不应该首先使用它。API 建议您改用日历类:http: //docs.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html

于 2012-07-19T15:43:51.047 回答
1
于 2019-11-23T01:30:02.210 回答