Java 如何修改本地日期

LocalDate提供了以下方法,可用于获取相对于可用本地日期对象的新本地日期实例。

  • plusDays()
  • plusWeeks()
  • plusMonths()
  • plusYears()
  • minusDays()
  • minusWeeks()
  • minusMonths()
  • minusYears()
LocalDate today = LocalDate.now();
// 3年后
LocalDate localDate1 = today.plusYears(3);	
// 3月前
LocalDate localDate2 = today.minusMonths(3);
java.time.LocalDate 类

java.time.LocalDate 类,在 Java 8 中引入,表示没有时区和当天时间的本地日期,例如2019-06-17
它具有作为一天中开始时刻的时间部分,例如:分钟和秒被视为零。

java.util.Datejava.time.LocalDate之间的主要区别在于 LocalDate 实例是不可变的和线程安全的。

java.time.LocalDate 类声明

public final class LocalDate
	extends Object
	implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable
{
	//class body
}

Java建LocalDate

通常,我们会在两种情况下创建本地日期实例,例如:获取当前日期或者创建指定日期的本地日期。

获取当前本地日期

使用以下方法获取当前本地日期。

LocalDate today = LocalDate.now();	//1 - Recommended
LocalDate today = LocalDate.ofInstant(Instant.now(), ZoneId.systemDefault());	//

创建指定的本地日期

要创建具有特定日、月和年的本地日期,请使用以下方法。

LocalDate dateInstance = LocalDate.of(2019, 3, 27);
LocalDate dateInstance = LocalDate.parse("2019-03-27");

Java如何将LocalDate格式化为字符串

使用LocalDate.format(DateTimeFormatter)方法将本地日期格式化为所需的字符串表示形式。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");
LocalDate today = LocalDate.now();
String dateString = today.format(formatter);	//23-Mar-2019
欢迎 on it road

Java如何将字符串解析为LocalDate

LocalDate类有两个重载的 parse() 方法来将字符串日期转换为本地日期实例。

parse(CharSequence text)	//1
parse(CharSequence text, DateTimeFormatter formatter)	//2
  • 如果字符串包含“ISO_LOCAL_DATE”模式中的日期,则使用第一种方法,例如:yyyy-MM-dd。这是 Java 中本地日期的默认模式。
  • 对于任何其他日期模式,我们需要使用第二种方法,我们传递日期字符串以及表示该日期字符串的模式的格式化程序。
//1 - default date pattern
String date = "2019-03-23";
LocalDate localDate = LocalDate.parse(date);
//2 - specific date pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");
String date = "23-Mar-2019";
LocalDate localDate = LocalDate.parse(date, formatter);
日期:2020-09-17 00:09:39 来源:oir作者:oir