我使用的日期格式为:yyyy-mm-dd。
如何将此日期增加一天?
我使用的日期格式为:yyyy-mm-dd。
如何将此日期增加一天?
当前回答
让我们来澄清一下这个用例:您希望执行日历算术,并以java.util.Date开始/结束。
一些方法:
使用SimpleDateFormat转换为字符串并返回:这是一种效率低下的解决方案。 转换为LocalDate:您将丢失任何时间信息。 转换为LocalDateTime:这涉及更多步骤,您需要考虑时区。 使用Date.getTime()转换为epoch:这很有效,但你是用毫秒计算的。
考虑使用java.time.Instant:
Date _now = new Date();
Instant _instant = _now.toInstant().minus(5, ChronoUnit.DAYS);
Date _newDate = Date.from(_instant);
其他回答
构造一个Calendar对象并调用add(Calendar。目前为止,1);
这很简单,试着用简单的话来解释。 今天的日期如下所示
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());// print today's date
calendar.add(Calendar.DATE, 1);
现在把这个日期提前一天。添加参数为(常量,值)的方法。这里的constant可以是DATE, hours, min, sec等,value是常量的值。比如一天,前面的常数是日历。DATE和它的值是1,因为我们想要提前一天的值。
System.out.println(calendar.getTime());//打印明天的修改日期
谢谢
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更改为另一个数字,以获得适当的增量。
java.time
在Java 8及以后的版本中,Java。时间包让这个过程变得很自动。(教程)
假设字符串输入和输出:
import java.time.LocalDate;
public class DateIncrementer {
static public String addOneDay(String date) {
return LocalDate.parse(date).plusDays(1).toString();
}
}
对于Java SE 8或更高版本,您应该使用新的日期/时间API
int days = 7;
LocalDate dateRedeemed = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");
String newDate = dateRedeemed.plusDays(days).format(formatter);
System.out.println(newDate);
如果您需要从java.util.Date转换为java.time。LocalDate,您可以使用此方法。
public LocalDate asLocalDate(Date date) {
Instant instant = date.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
return zdt.toLocalDate();
}
对于Java SE 8之前的版本,您可以使用Joda-Time
Joda-Time提供了Java日期和时间的高质量替代品 类,是Java事实上的标准日期和时间库 在Java SE 8之前
int days = 7;
DateTime dateRedeemed = DateTime.now();
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/uuuu");
String newDate = dateRedeemed.plusDays(days).toString(formatter);
System.out.println(newDate);