介绍
Java 的 atStartOfDay(ZoneId)
方法用于将指定日期与基于时区的起始时间(午夜时间)结合。该方法返回的是带时区的日期时间(zoned date-time),而不是本地日期时间(local date-time)。在本实验中,你将学习如何在 Java 中使用带时区的 atStartOfDay()
方法。
Java 的 atStartOfDay(ZoneId)
方法用于将指定日期与基于时区的起始时间(午夜时间)结合。该方法返回的是带时区的日期时间(zoned date-time),而不是本地日期时间(local date-time)。在本实验中,你将学习如何在 Java 中使用带时区的 atStartOfDay()
方法。
首先,导航到 ~/project
目录,并使用以下命令创建一个名为 LocalDateStartOfDay.java
的新 Java 文件:
cd ~/project
touch LocalDateStartOfDay.java
然后,使用你喜欢的文本编辑器打开 LocalDateStartOfDay.java
文件。
在这一步中,我们将导入必要的包以使用 LocalDate
、Month
、ZoneId
和 ZonedDateTime
类。
import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
在这一步中,我们将创建一个带有指定日期的 LocalDate
对象,然后使用 atStartOfDay()
方法从该日期获取特定时区的带时区日期时间。
// Getting a date
LocalDate localDate = LocalDate.of(2022, Month.APRIL, 15);
// Getting start time of the date
ZonedDateTime localDateTime = localDate.atStartOfDay(ZoneId.of("Asia/Kolkata"));
// Displaying date and time of start of the date
System.out.println("Date with start time: \n"+localDateTime);
在这一步中,我们将使用 atStartOfDay()
方法结合 ZoneId.systemDefault()
方法,从指定日期获取系统默认时区的带时区日期时间。
// Getting start time of the date with system default time zone
ZonedDateTime localDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
// Displaying date and time of start of the date
System.out.println("Date with start time: \n"+localDateTime);
在这一步中,我们将在终端中使用以下命令编译并运行 Java 程序:
javac LocalDateStartOfDay.java && java LocalDateStartOfDay
输出应如下所示,显示指定时区的日期及其起始时间。
Date with start time:
2022-04-15T00:00+05:30[Asia/Kolkata]
Date with start time:
2022-04-15T00:00+02:00[Europe/Paris]
在本实验中,你学习了如何使用 Java 的 atStartOfDay(ZoneId)
方法,将起始时间与指定日期结合,基于时区获取带时区的日期时间。你还学习了如何获取指定日期的带时区日期时间,并使用系统的默认时区。