📌  相关文章
📜  Java中的 ZonedDateTime getLong() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:53.590000             🧑  作者: Mango

Java中的 ZonedDateTime getLong() 方法及示例

在Java 8中,ZonedDateTime是一个有时区信息的日期和时间类。它可以使用时区信息将日期和时间转换为特定的时区,并支持在不同的时区之间进行转换。

ZonedDateTime类提供了许多方法来获取日期和时间的各个部分,其中包括getLong()方法。该方法可以用于获取指定日期时间字段的长整型值,如年、月、日、时、分、秒等。

下面是使用getLong()方法的示例代码:

import java.time.ZoneId;
import java.time.ZonedDateTime;
 
public class ZonedDateTimeExample {
    public static void main(String[] args) {
        // 创建ZonedDateTime实例
        ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("America/New_York"));
         
        // 获取年份
        long year = zdt.getLong(java.time.temporal.ChronoField.YEAR);
        System.out.println("Year : " + year);
         
        // 获取月份
        long month = zdt.getLong(java.time.temporal.ChronoField.MONTH_OF_YEAR);
        System.out.println("Month : " + month);
         
        // 获取日
        long day = zdt.getLong(java.time.temporal.ChronoField.DAY_OF_MONTH);
        System.out.println("Day : " + day);
         
        // 获取小时
        long hour = zdt.getLong(java.time.temporal.ChronoField.HOUR_OF_DAY);
        System.out.println("Hour : " + hour);
         
        // 获取分钟
        long minute = zdt.getLong(java.time.temporal.ChronoField.MINUTE_OF_HOUR);
        System.out.println("Minute : " + minute);
         
        // 获取秒
        long second = zdt.getLong(java.time.temporal.ChronoField.SECOND_OF_MINUTE);
        System.out.println("Second : " + second);
    }
}

输出结果为:

Year : 2022
Month : 9
Day : 26
Hour : 2
Minute : 2
Second : 47

在上面的示例中,我们创建了一个ZonedDateTime对象,并使用时区ID“America/New_York”将其设置为当前时间。然后,我们使用getLong()方法获取了年、月、日、小时、分钟和秒的值,将其输出到控制台。

需要注意的是,getLong()方法需要传递一个TemporalField对象,该对象表示要获取的日期时间字段。在上面的示例中,我们使用的是java.time.temporal.ChronoField枚举中定义的字段,它定义了一些标准的日期时间字段,如YEAR、MONTH_OF_YEAR、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE_OF_HOUR和SECOND_OF_MINUTE等。

此外,ZonedDateTime类还提供了其他许多有用的方法,如withZoneSameInstant()、withZoneSameLocal()、plus()和minus()等,以帮助我们在不同时区之间进行转换、加减日期时间等操作。