自学内容网 自学内容网

Java中的时区和带时区的时间对象:ZoneId类、ZonedDateTime类

在 Java 中,ZoneId 和 ZonedDateTime 是处理时区和带时区日期时间的重要类,它们属于 java.time 包,这个包是在 Java 8 中引入的,用于替代旧的日期和时间 API(java.util.Date、java.util.Calendar 等)。

1、ZoneId 时区

ZoneId 类表示时区信息,例如 "UTC"、"Asia/Shanghai"、"America/New_York" 等。它提供了获取时区偏移量、时区规则以及验证时区 ID 的方法。

ZoneId 时区的常用方法:

方法说明
public static ZoneId systemDefault()获取当前系统默认的时区。
public static Set<String> getAvailableZoneIds()获取Java中支持的所有时区。
public static ZoneId of(String zoneId)获取一个指定的时区。
public abstract ZoneRules getRules()获取该时区的时区规则。

【示例】使用 ZoneId 时区。

import java.time.ZoneId;

/**
 * 使用 ZoneId 时区
 */
@Test
public void testZoneId()
{
    // 1、获取当前系统默认的时区
    ZoneId zoneId = ZoneId.systemDefault();
    System.out.println("当前系统的默认时区:" + zoneId.getId());

    // 2、获取Java支持的全部时区ID
    Set<String> zoneIdSet = ZoneId.getAvailableZoneIds();
    System.out.println("Java支持的全部时区:" + zoneIdSet);

    // 3、获取美国纽约市的时区ID
    ZoneId zoneNewYork = ZoneId.of("America/New_York");
    System.out.println("美国纽约市的时区:" + zoneNewYork.getId());
}

执行结果:

2、ZonedDateTime 带时区的时间

ZonedDateTime 类表示带时区信息的日期和时间。它包含了日期、时间和时区信息,可以用于表示某个具体时区下的时间点。

ZonedDateTime 的常用方法:

方法说明
public static ZonedDateTime now()获取当前系统带时区的时间。
public static ZonedDateTime now(ZoneId zone)获取指定的时区的时间。
public ZonedDateTime withZoneSameInstant(ZoneId zone)更改时区,保持瞬间(时间点)不变。
public static ZonedDateTime of(LocalDateTime localDateTime, ZoneId zone)根据 LocalDateTime 和 ZoneId 创建 ZonedDateTime 实例。
public ZoneId getZone()获取时区信息。

【示例】使用 ZonedDateTime 带时区的时间。

/**
 * 使用 ZonedDateTime 带时区的时间
 */
@Test
public void testZonedDateTime()
{
    // 1、获取当前系统带时区的时间
    ZonedDateTime zonedDateTime = ZonedDateTime.now();
    System.out.println("当前系统带时区的时间:" + zonedDateTime);

    // 2、获取美国纽约市时间对象
    ZoneId zoneNewYork = ZoneId.of("America/New_York"); //设置时区ID
    ZonedDateTime zonedDateTimeNewYork = ZonedDateTime.now(zoneNewYork);
    System.out.println("美国纽约市当前时间:" + zonedDateTimeNewYork);

    // 3、获取世界标准时间
    ZonedDateTime zebraTime = ZonedDateTime.now(Clock.systemUTC());
    System.out.println("世界标准时间:" + zebraTime);
}

执行结果:


原文地址:https://blog.csdn.net/pan_junbiao/article/details/143483312

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!