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

如何在java中为日期添加2周?,java,datetime,Java,Datetime,我在实例化点从对象获取一个日期,为了输出,我需要在该日期前再加两周。我想知道我将如何添加到它,以及我的语法目前是否正确 当前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()

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

当前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;
}

这个语法正确吗?另外,我想制作一个getter,返回预计发货日期,即订单日期后14天,我不确定如何添加和减去当前日期。

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

试试这个:

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();

试着增加两周

long date = System.currentTimeMillis() + 14 * 24 * 3600 * 1000;
Date newDate = new Date(date);
使用日历

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

如果您使用的是Java8,那么可以使用新的日期时间api


如果您使用的是java 7或更旧版本的java,则应使用旧api

如果将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());
}

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

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

我将向您展示如何在Java8中实现这一点。给你:

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

爪哇8岩石

谢谢!我不知道有一个日历类可以这样操作@帕格斯:不客气。。。也要接受这个答案,这样其他大家都知道的未来的日子加起来会是一个整数吗?或者其他数据类型?是的!如果它起作用,我一定会这么做@PugsOverDrugs是的,它是一个整数类型。