java-如何将7天添加到默认日期?

时间:2019-03-26 07:15:11

标签: java

我在Java中有一个当前日期,如下所示:

String currentDate = CoreUtil.parseDate(new Date());

这将以2019-03-26的形式返回今天的日期。

我声明了另一个日期,以便它应自动向当前日期添加7天,如下所示:

String defaultendDate=CoreUtil.parseDate(new Date()); + 7 days //example

因此defaultEnddate应该为2019-04-03

由于我不想使用任何简单的日期格式化程序,我该怎么做?

此外,出于某种原因,我想将日期存储在String中,其次,我只需要日期,而不是时间。我也没有使用Java 8,所以在这里我不能真正使用LocalDate库。

4 个答案:

答案 0 :(得分:4)

LocalDate非常适合此工作:

LocalDate.now().plusDays(7);

您可以通过以下方式获取字符串表示形式

.format(DateTimeFormatter.ISO_DATE);

如果您无法使用Java 8,则有几种选择:

  • 使用ThreeTen-Backport,它可以反向移植Java 8 JSR-310 API的大多数功能,这些功能通常在java.time软件包中提供。 See here for details。该软件包可在Maven Central中获得。

  • 您也可以使用Joda Time。奇怪的是,这两个项目的网站布局几乎相同。

  • 如果您否则无法使用ThreeTen-Backport或Joda Time,可以使用以下方法:

    Calendar c = Gregorian​Calendar.getInstance();
    c.add(Calendar.DATE, 7);
    
    String s = new Simple​Date​Format("yyyy-MM-dd")
        .format(c.getTime());
    
         

    警告
      旧的日期和时间API see here有很多问题。仅在没有其他选择时才使用此选项。

答案 1 :(得分:1)

使用Calendar

 Calendar cal = Calendar.getInstance();
 cal.add(Calendar.DAY_OF_MONTH, 7);
 Date defaultEndDate = cal.getTime();

答案 2 :(得分:1)

类似

LocalDate.now().plusWeeks(1);

也会做原因。

请记住使用Java 8 Date / Time API进行任何带有日期和时间的操作。因为它解决了旧的日期和日历在线程安全,代码设计,时区逻辑等方面的缺点。

更新:

如果您必须使用旧的Date / Time API,则以下代码就足够了:

Date date = new Date();
Calendar calendar = Calendar.getInstance();  
calendar.setTime(date);  
calendar.add(Calendar.DAY_OF_MONTH, 7);
System.out.println("Adding seven days: " + calendar.getTime());
date = calendar.getTime();
//your code
String currentDate = CoreUtil.parseDate(new Date());

答案 3 :(得分:0)

*
String dt = new SimpleDateFormat("yyyy.MM.dd").format(new Date());  // Start date
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DATE, 7);  // number of days to add
        dt = sdf.format(c.getTime());  // dt is now the new date
        System.out.println(dt);

*
Use java.util.Date try this one