如何在java中添加2周的日期?

时间:2014-04-26 06:07:35

标签: java datetime

我在实例化时从对象获取日期,为了输出,我需要在该日期添加2周。我想知道如何添加它以及我的语法目前是否正确。

当前Java:

private final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
private Date dateOfOrder;

private void setDateOfOrder()
{
    //Get current date time with Date()
    dateOfOrder = new Date();      
}

public Date getDateOfOrder()
{
    return dateOfOrder;
}

这种语法是否正确?另外,我想制作一个返回预计发货日期的吸气剂,这是订货日期后14天,我不知道如何加减当前日期。

7 个答案:

答案 0 :(得分:28)

使用日历并设置当前时间,然后使用日历的添加方法

试试这个:

int noOfDays = 14; //i.e two weeks
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateOfOrder);            
calendar.add(Calendar.DAY_OF_YEAR, noOfDays);
Date date = calendar.getTime();

答案 1 :(得分:12)

我将向您展示如何在Java 8中完成它。在这里:

public class DemoDate {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Current date: " + today);

        //add 2 week to the current date
        LocalDate next2Week = today.plus(2, ChronoUnit.WEEKS);
        System.out.println("Next week: " + next2Week);
    }
}

输出:

Current date: 2016-08-15
Next week: 2016-08-29

Java 8摇滚!!

答案 2 :(得分:5)

使用日历

    Date date = ...
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(Calendar.WEEK_OF_MONTH, 2);
    date = c.getTime();

答案 3 :(得分:1)

尝试此操作添加两周。

 Long date = (new Date().getTime()) + (14 * 24 * 3600 * 1000) ;
    Date newDate = new Date(date);

答案 4 :(得分:0)

如果将14传递给此addDate方法,它将向当前日期添加14并返回

public String addDate(int days) throws Exception {
    final DateFormat dateFormat1 = new SimpleDateFormat(
            "yyyy/MM/dd HH:mm:ss");
    Calendar c = Calendar.getInstance();
    c.setTime(new Date()); // Now use today date.
    c.add(Calendar.DATE, addDays); // Adding 5 days
    return dateFormat1.format(c.getTime());
}

答案 5 :(得分:0)

使用Joda-Time库将更容易,并将处理夏令时,其他异常和时区。

java.util.Date date = new DateTime( DateTimeZone.forID( "America/Denver" ) ).plusWeeks( 2 ).withTimeAtStartOfDay().toDate();

答案 6 :(得分:-1)

如果您使用的是Java 8,则可以使用新的日期时间api http://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html#plusWeeks-long-

如果您使用的是java 7或更高版本的java,则应使用旧的api http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html#add-int-int-