Java LocalDate
类
原文: https://howtodoinjava.com/java/date-time/java-time-localdate-class/
Java 8 中引入的java.time.LocalDate
类,表示没有时区和时间的本地日期,例如2019-03-27
。 它具有从一天中时刻开始的时间部分,即分钟和秒被视为零。
我们可以使用LocalDate
实例来表示一天中没有一天中特定时间的日期,例如生日,假期或员工休假。
java.util.Date
和java.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
类。
- 将字符串解析为 Java 中的
LocalDate
- 在 Java 中将
LocalDate
格式设置为字符串 - 将 Java 中的
LocalDate
转换为java.util.Date
- 在 Java 中将日期转换为
LocalDate
- 将 Java 中的
LocalDate
转换为java.sql.Date
- 在 Java 中将
LocalDate
转换为ZonedDateTime
- 在 Java 中将
LocalDate
转换为LocalDateTime
学习愉快!