我在实例化时从对象获取日期,为了输出,我需要在该日期添加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天,我不知道如何加减当前日期。
答案 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-