Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中如何将日期增加一天?_Java_Date - Fatal编程技术网

在Java中如何将日期增加一天?

在Java中如何将日期增加一天?,java,date,Java,Date,我正在使用以下格式的日期:yyyy-mm-dd 如何将该日期增加一天?构造一个日历对象并使用add(Calendar.date,1)方法 构造一个日历对象并使用add方法(Calendar.DATE,1) 使用API将字符串转换为日期对象,然后使用API添加一天。如果您需要特定的代码示例,请告诉我,我可以更新我的答案。使用API将字符串转换为日期对象,然后使用API添加一天。如果您需要特定的代码示例,请告诉我,我可以更新我的答案。类似这样的方法应该可以: SimpleDateFormat dat

我正在使用以下格式的日期:
yyyy-mm-dd


如何将该日期增加一天?

构造一个日历对象并使用add(Calendar.date,1)方法

构造一个日历对象并使用add方法(Calendar.DATE,1)

使用API将字符串转换为日期对象,然后使用API添加一天。如果您需要特定的代码示例,请告诉我,我可以更新我的答案。

使用API将字符串转换为日期对象,然后使用API添加一天。如果您需要特定的代码示例,请告诉我,我可以更新我的答案。

类似这样的方法应该可以:

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );
String dt = "2008-01-01";  // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1);  // number of days to add
dt = sdf.format(c.getTime());  // dt is now the new date

像这样的事情应该可以做到:

String dt = "2008-01-01";  // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1);  // number of days to add
dt = sdf.format(c.getTime());  // dt is now the new date
看看Joda Time()

看看Joda Time()


请注意,此行增加了24小时:

d1.getTime() + 1 * 24 * 60 * 60 * 1000
但这一行增加了一天

cal.add( Calendar.DATE, 1 );

在有夏令时变化的日子里(25或23小时),你会得到不同的结果

请注意,此行增加了24小时:

d1.getTime() + 1 * 24 * 60 * 60 * 1000
但这一行增加了一天

cal.add( Calendar.DATE, 1 );
在有夏令时变化的日子里(25或23小时),你会得到不同的结果

UPDATE(2021年5月):这对于古老的Java来说是一个非常过时的答案。对于Java8及以上版本,请参见

与C#相比,Java看起来确实落后于8球。此实用程序方法显示了在JavaSE6中使用的方法(可能是唯一简单的方法)

若要添加一天,请根据所问问题,按如下方式调用:

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);
更新(2021年5月):对于古老的Java来说,这是一个非常过时的答案。对于Java8及以上版本,请参见

与C#相比,Java看起来确实落后于8球。此实用程序方法显示了在JavaSE6中使用的方法(可能是唯一简单的方法)

若要添加一天,请根据所问问题,按如下方式调用:

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);

我更喜欢使用Apache中的DateUtils。看看这个。它非常方便,尤其是当您必须在项目中的多个位置使用它,并且不想为此编写一行程序方法时

API说:

addDays(Date-Date,int-amount):将天数添加到返回新对象的日期


请注意,它返回一个新的Date对象,并且不对上一个对象本身进行更改。

我更喜欢使用Apache中的DateUtils。看看这个。它非常方便,尤其是当您必须在项目中的多个位置使用它,并且不想为此编写一行程序方法时

Date newDate = new Date();
newDate.setDate(newDate.getDate()+1);
System.out.println(newDate);
API说:

addDays(Date-Date,int-amount):将天数添加到返回新对象的日期


请注意,它会返回一个新的日期对象,并且不会对上一个对象本身进行更改。

Apache Commons已经有了这个DateUtils.addDays(Date-Date,int-amount),您可以使用它,也可以使用JodaTime使它更干净。

Apache Commons已经有了这个DateUtils.addDays(Date-Date,int-amount)您可以使用它,也可以使用JodaTime使其更干净

Date newDate = new Date();
newDate.setDate(newDate.getDate()+1);
System.out.println(newDate);
Date today = new Date();               
SimpleDateFormat formattedDate = new SimpleDateFormat("yyyyMMdd");            
Calendar c = Calendar.getInstance();        
c.add(Calendar.DATE, 1);  // number of days to add      
String tomorrow = (String)(formattedDate.format(c.getTime()));
System.out.println("Tomorrows date is " + tomorrow);
这将给出明天的日期
c.add(…)
可以将参数从1更改为另一个数字以获得适当的增量

这将给出明天的日期
c.add(…)
可以将参数从1更改为另一个数字,以获得适当的增量。

java.time 在Java8和更高版本上,使这几乎是自动化的。()

假设
字符串
输入和输出:

import java.time.LocalDate;

public class DateIncrementer {
  static public String addOneDay(String date) {
    return LocalDate.parse(date).plusDays(1).toString();
  }
}
java.time 在Java8和更高版本上,使这几乎是自动化的。()

假设
字符串
输入和输出:

import java.time.LocalDate;

public class DateIncrementer {
  static public String addOneDay(String date) {
    return LocalDate.parse(date).plusDays(1).toString();
  }
}

Java8添加了一个用于处理日期和时间的新API

使用Java 8,您可以使用以下代码行:

// parse date from yyyy-mm-dd pattern
LocalDate januaryFirst = LocalDate.parse("2014-01-01");

// add one day
LocalDate januarySecond = januaryFirst.plusDays(1);

Java8添加了一个用于处理日期和时间的新API

使用Java 8,您可以使用以下代码行:

// parse date from yyyy-mm-dd pattern
LocalDate januaryFirst = LocalDate.parse("2014-01-01");

// add one day
LocalDate januarySecond = januaryFirst.plusDays(1);

只需在字符串中传递日期和接下来的天数

 private String getNextDate(String givenDate,int noOfDays) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        String nextDaysDate = null;
    try {
        cal.setTime(dateFormat.parse(givenDate));
        cal.add(Calendar.DATE, noOfDays);

       nextDaysDate = dateFormat.format(cal.getTime());

    } catch (ParseException ex) {
        Logger.getLogger(GR_TravelRepublic.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
    dateFormat = null;
    cal = null;
    }

    return nextDaysDate;

}

只需在字符串中传递日期和接下来的天数

 private String getNextDate(String givenDate,int noOfDays) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        String nextDaysDate = null;
    try {
        cal.setTime(dateFormat.parse(givenDate));
        cal.add(Calendar.DATE, noOfDays);

       nextDaysDate = dateFormat.format(cal.getTime());

    } catch (ParseException ex) {
        Logger.getLogger(GR_TravelRepublic.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
    dateFormat = null;
    cal = null;
    }

    return nextDaysDate;

}
这将从oldDate获取自历元以来的毫秒数,并添加1天的毫秒数,然后使用Date()公共构造函数使用新值创建日期。此方法允许您添加1天或任意小时/分钟数,而不仅仅是整天


这将从oldDate获取自历元以来的毫秒数,并添加1天的毫秒数,然后使用Date()公共构造函数使用新值创建日期。此方法允许您添加1天或任意小时/分钟数,而不仅仅是整天。

如果您希望添加单个时间单位,并且希望其他字段也会增加,则可以安全地使用add方法。见下例:

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(1970,Calendar.DECEMBER,31);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
将打印:

1970-12-31
1971-01-01
1970-12-31

如果您希望添加单个时间单位,并且希望其他字段也会增加,那么可以安全地使用add方法。见下例:

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(1970,Calendar.DECEMBER,31);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
将打印:

1970-12-31
1971-01-01
1970-12-31

您可以使用简单的java.util库

Calendar cal = Calendar.getInstance(); 
cal.setTime(yourDate); 
cal.add(Calendar.DATE, 1);
yourDate = cal.getTime();

您可以使用简单的java.util库

Calendar cal = Calendar.getInstance(); 
cal.setTime(yourDate); 
cal.add(Calendar.DATE, 1);
yourDate = cal.getTime();

在Java8中,您可以使用
java.time.LocalDate

LocalDate parsedDate = LocalDate.parse("2015-10-30"); //Parse date from String
LocalDate addedDate = parsedDate.plusDays(1);   //Add one to the day field
您可以在中转换为
java.util.Date
对象,如下所示

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
您可以将
LocalDate
格式化为如下字符串

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

在Java8中,您可以使用
java.time.LocalDate

LocalDate parsedDate = LocalDate.parse("2015-10-30"); //Parse date from String
LocalDate addedDate = parsedDate.plusDays(1);   //Add one to the day field
您可以在中转换为
java.util.Date
对象,如下所示

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
您可以将
LocalDate
格式化为如下字符串

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

如果您使用的是Java8,
Java.time.LocalDate
Java.time.format.DateTimeFormatter
可以使这项工作非常简单

public String nextDate(String date){
      LocalDate parsedDate = LocalDate.parse(date);
      LocalDate addedDate = parsedDate.plusDays(1);
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd");
      return addedDate.format(formatter); 
}

如果您使用的是Java8,
Java.time.LocalDate
Java.time.format.DateTimeFormatter
可以使这项工作非常简单

public String nextDate(String date){
      LocalDate parsedDate = LocalDate.parse(date);
      LocalDate addedDate = parsedDate.plusDays(1);
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd");
      return addedDate.format(formatter); 
}

因为Java1.5在我看来更干净

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date day = dateFormat.parse(string);
// add the day
Date dayAfter = new Date(day.getTime() + TimeUnit.DAYS.toMillis(1));

因为Java1.5在我看来更干净

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date day = dateFormat.parse(string);
// add the day
Date dayAfter = new Date(day.getTime() + TimeUnit.DAYS.toMillis(1));

如果您使用的是Java8,那么就这样做

LocalDate sourceDate = LocalDate.of(2017, Month.MAY, 27);  // Source Date
LocalDate destDate = sourceDate.plusDays(1); // Adding a day to source date.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // Setting date format

String destDate = destDate.format(formatter));  // End date
String sourceDate = "2017-05-27";  // Start date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(sourceDate)); // parsed date and setting to calendar

calendar.add(Calendar.DATE, 1);  // number of days to add
String destDate = sdf.format(calendar.getTime());  // End date
如果要使用SimpleDataFormat,请按如下方式操作

LocalDate sourceDate = LocalDate.of(2017, Month.MAY, 27);  // Source Date
LocalDate destDate = sourceDate.plusDays(1); // Adding a day to source date.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // Setting date format

String destDate = destDate.format(formatter));  // End date
String sourceDate = "2017-05-27";  // Start date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(sourceDate)); // parsed date and setting to calendar

calendar.add(Calendar.DATE, 1);  // number of days to add
String destDate = sdf.format(calendar.getTime());  // End date

如果您使用的是Java