43

我已经完成了所有设置,可以将当前日期存储到 Java 中的变量中。我想弄清楚的是如何存储当前日期后 1 年的日期。

import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Scanner;
import java.util.Calendar;

这是我当前日期的内容:

DateFormat newDate = new SimpleDateFormat("MM/dd/yyyy");
Date date = new Date();
startDate = newDate.format(date);

因此,例如,如果它是今天,它将存储 2/18/2013。我正在尝试存储日期 2/18/2014。我该怎么做呢?

4

5 回答 5

118

如果您不想拖动外部库,只需使用calendar.add(Calendar.YEAR, 1)

Calendar cal = Calendar.getInstance();
Date today = cal.getTime();
cal.add(Calendar.YEAR, 1); // to get previous year add -1
Date nextYear = cal.getTime();

请注意,如果日期是29/Feb/2012并且您添加了 1 年,您将获得28/Feb/2013

于 2013-02-18T23:03:53.207 回答
15
于 2015-11-28T02:53:10.740 回答
6

使用Calendar#add(int field, int amount)方法。您应该使用 Calendar API 来操作日期和时间操作。

Calendar today = Calendar.getInstance(); 
Calendar nextYearToday = today;
nextYearToday.add(Calendar.YEAR, 1);
于 2013-02-18T23:04:40.287 回答
1
 Calendar cal = Calendar.getInstance();
        Date today = cal.getTime();
        cal.add(Calendar.YEAR, 1); // to get previous year add 1
        cal.add(Calendar.DAY_OF_MONTH, -1); // to get previous day add -1
        Date expiryDate = cal.getTime();


        System.out.println("today is --> "+today);
        System.out.println("expiryDate is --> "+expiryDate);

OutPut today is --> Fri Dec 01 10:10:52 GMT+05:30 2017

expiryDate is --> Fri Nov 30 10:10:52 GMT+05:30 2018

date today is -> Fri Dec 01 10:10:52 GMT+05:30 2017

expiryDate is -> Fri Nov 30 10:10:52 GMT+05:30 2018

enter image description here

于 2017-12-01T04:46:27.330 回答
-2

在 Android 中比以往任何时候都简单:

oneYearAfterDate = new Date(date.getTime() + DateUtils.YEAR_IN_MILLIS )

于 2015-11-27T20:33:02.567 回答