Java LocalDate.atStartOfDay(ZoneId)方法

原文:https://www.studytonight.com/java-examples/java-localdate-atstartofday-method-with-time-zone

Java atStartOfDay(ZoneId)方法用于根据时区将开始时间(午夜时间)与指定日期相结合。此方法返回分区日期时间,而不是本地日期时间。

它根据时区中的规则,从最早有效时间的该日期返回分区日期时间。下面给出了该方法的语法。

句法

public ZonedDateTime atStartOfDay(ZoneId zone)

因素

它采用单个参数作为区域 id。

返回:

它从最早有效时间的该日期返回基于分区的日期时间。

例 1:

让我们根据指定的时区获取日期的午夜时间。在这里,我们将时区 id 传递给atStartOfDay()方法,并获得分区日期时间。我们可以指定区域,或者让它在系统上自动检测。

import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Demo {  
    public static void main(String[] args){  

        // Getting a date
        LocalDate localDate = LocalDate.of(2018, Month.JANUARY, 18);
        // Displaying date
        System.out.println("Date: \n"+localDate);
        // 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);
    }
}

日期: 2018-01-18 开始时间日期: 2018-01-18T00:00+05:30【亚洲/加尔各答】

例 2:

如果我们不想手动指定时区,那么使用systemDefault()方法设置默认时区。在本例中,我们使用系统默认区域 id 并获取本地日期时间

import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Demo {  
    public static void main(String[] args){  

        // Getting a date
        LocalDate localDate = LocalDate.of(2018, Month.JANUARY, 18);
        // Displaying date
        System.out.println("Date: \n"+localDate);
        // Getting start time of the date
        ZonedDateTime localDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
        // Displaying date and time of start of the date
        System.out.println("Date with start time: \n"+localDateTime);
    }
}

日期: 2018-01-18 开始时间日期: 2018-01-18T00:00+05:30【亚洲/加尔各答】

实时示例:

这里,我们有一个真实的 java 例子。您可以为期望的结果执行它并测试您的代码。