这个问题早就应该得到一个现代的答案。在 Java 8 中将 10 年添加到当前日期之后更是如此,被认为是这个问题的重复。
其他答案是 2012 年的好答案。岁月流逝,今天我相信没有人应该使用现在已经过时的课程Calendar
,Date
更不用说SimpleDateFormat
. 现代 Java 日期和时间 API 使用起来要好得多。
使用该重复问题中的示例,首先我们需要
private static final DateTimeFormatter formatter
= DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
有了这个我们可以做到:
String currentDateString = "2017-09-12 00:00:00";
LocalDateTime dateTime = LocalDateTime.parse(currentDateString, formatter);
dateTime = dateTime.plusYears(10);
String tenYearsAfterString = dateTime.format(formatter);
System.out.println(tenYearsAfterString);
这打印:
2027-09-12 00:00:00
如果您不需要一天中的时间,我建议您LocalDate
上课,而不是LocalDateTime
因为它完全是一个没有一天中的时间的日期。
LocalDate date = dateTime.toLocalDate();
date = date.plusYears(10);
结果是日期2027-09-12
。
问题:我在哪里可以学习使用现代 API?
您可以从Oracle 教程开始。网上资料很多,去搜吧。