Java LocalDate类是不可变的,这意味着一旦创建实例,就无法修改它。LocalDate提供了许多有用的方法来操作和查询日期,例如添加或减去天、月或年,获取星期几,或检查一个日期是否在另一个日期之前或之后。
本地日期示例
让我们从一个简单的示例开始,该示例为当前日期创建一个LocalDate实例并将其打印到控制台:import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
在此示例中,我们从java.time包中 导入LocalDate类,并使用静态now()方法创建一个名为Today的新LocalDate实例。此方法返回一个LocalDate对象,表示基于默认时区的系统时钟的当前日期。然后,我们使用System.out对象的println()方法将当前日期打印到控制台。输出将如下所示:
输出
今天的日期:2023-05-01
本地日期构造函数
除了now()方法之外,LocalDate还提供了几个其他构造函数,允许您从不同的源创建LocalDate实例。例如,您可以根据特定的年、月、日 创建LocalDate :import java.time.LocalDate;
public class LocalDateConstructorExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2023, 5, 1);
System.out.println("Date 1: " + date1);
}
}
此代码创建一个名为date1的 新LocalDate实例,其中包含 2023 年、5 月(由值 5 表示)和第 1 天。输出将为:
输出
日期 1: 2023-05-01
本地日期操作
LocalDate最有用的功能之一是操作日期的能力。例如,您可以使用plus和minus方法添加或减去天、月或年:import java.time.LocalDate;
public class LocalDateManipulationExample {
public static void main(String[] args) {
LocalDate date3 = LocalDate.parse("2023-05-01");
LocalDate date4 = date3.plusDays(1);
LocalDate date5 = date3.minusMonths(1);
LocalDate date6 = date3.plusYears(1);
System.out.println("Date 3: " + date3);
System.out.println("Date 4: " + date4);
System.out.println("Date 5: " + date5);
System.out.println("Date 6: " + date6);
}
}
在此示例中,我们首先通过解析字符串“2023-05-01”来创建一个名为date3的新LocalDate实例。然后,我们通过在date3中添加或减去天、月或年来创建三个名为date4、date5和date6的新LocalDate实例。输出将是:
日期 3: 2023-05-01 日期 4: 2023-05-02 日期 5: 2023-04-01 日期 6: 2024-05-01
比较本地日期
LocalDate还提供了比较日期的方法。您可以使用equals()、isBefore()和isAfter()方法 检查两个LocalDate实例是否相等,或者一个实例是否在另一个实例之前或之后:import java.time.LocalDate;
public class LocalDateCompareExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.parse("2023-05-01");
LocalDate date2 = LocalDate.parse("2023-05-02");
System.out.println("Are the dates equal? " + date1.equals(date2));
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date2 after date1? " + date2.isAfter(date1));
}
}
在此示例中,我们创建两个名为date1和date2的LocalDate实例,然后使用equals()、isBefore()和isAfter()方法对它们进行比较。输出将为布尔形式,即true或false:
日期相等吗?false date1 是否在 date2 之前?true date2 是否在 date1 之后?真的
本地日期时间
如果需要表示日期和时间,可以使用LocalDateTime类,该类与LocalDate类似,但包含时间组件。LocalDateTime提供了操作和查询日期和时间部分的方法。以下是创建LocalDateTime实例的示例:import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime datetime = LocalDateTime.now();
System.out.println("Current date and time: " + datetime);
}
}
此代码导入LocalDateTime类并使用now()方法创建一个名为datetime的新实例。输出将如下所示:
当前日期和时间:2023-05-01T15:30:00.123456789
注意:输出中的“T”表示时间戳的开始。
GO TO FULL VERSION