Java LocalDate类

Java LocalDate

原文: https://howtodoinjava.com/java/date-time/java-time-localdate-class/

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

我们可以使用LocalDate实例来表示一天中没有一天中特定时间的日期,例如生日,假期或员工休假。

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

1. 类声明

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

2. 如何创建LocalDate

通常,我们将在两种情况下创建本地日期实例,即获取当前日期或为指定日期创建本地日期。

2.1 获取当前的本地日期

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

LocalDate today = LocalDate.now();	//1 - Recommended

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

2.2 创建指定的本地日期

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

LocalDate dateInstance = LocalDate.of(2019, 3, 27);

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

3. 如何将字符串解析为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);

4. 如何将LocalDate格式化为字符串

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

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");

LocalDate today = LocalDate.now();

String dateString = today.format(formatter);	//23-Mar-2019

5. 如何修改本地日期

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

  • plusDays()
  • plusWeeks()
  • plusMonths()
  • plusYears()
  • minusDays()
  • minusWeeks()
  • minusMonths()
  • minusYears()
LocalDate today = LocalDate.now();

//Same date 3 years later
LocalDate localDate1 = today.plusYears(3);	

//local date before 3 months
LocalDate localDate2 = today.minusMonths(3);

6. Java LocalDate示例

通过一些示例,让我们更好地了解LocalDate类。

学习愉快!

参考: LocalDate Java 文档