📅  最后修改于: 2023-12-03 15:01:56.190000             🧑  作者: Mango
在 Java 中,OffsetTime 类可以表示一个带有时区偏移量的时间。可以使用 of() 方法来创建 OffsetTime 对象。其中,of() 方法中参数可以是 LocalTime 类型,表示时区偏移量为 0。
public static OffsetTime of(LocalTime time, ZoneOffset offset)
import java.time.LocalTime;
import java.time.OffsetTime;
import java.time.ZoneOffset;
public class OffsetTimeExample {
public static void main(String[] args) {
// 通过 LocalTime 创建 OffsetTime,时区偏移量为默认值:+08:00
LocalTime localTime = LocalTime.of(12, 30, 0);
OffsetTime offsetTime1 = OffsetTime.of(localTime, ZoneOffset.of("+08:00"));
System.out.println(offsetTime1); // 输出:"12:30+08:00"
// 通过 LocalTime 创建 OffsetTime,时区偏移量为UTC
OffsetTime offsetTime2 = OffsetTime.of(localTime, ZoneOffset.UTC);
System.out.println(offsetTime2); // 输出:"04:30Z"
}
}
以上代码创建了两个 OffsetTime 对象,分别表示 12:30:00 和 UTC 时间下的 04:30:00。其中,第一个创建的 OffsetTime 对象的时区偏移量为默认的 +08:00,第二个创建的 OffsetTime 对象的时区偏移量为 UTC。
需要注意的是,使用 of() 方法创建 OffsetTime 对象时需要传入 LocalTime 和 ZoneOffset 两个参数。如果仅需要表示时区偏移量为 0 的时间,可以直接使用 LocalTime 对象来创建 OffsetTime,如下所示:
import java.time.LocalTime;
import java.time.OffsetTime;
public class OffsetTimeExample {
public static void main(String[] args) {
// 直接使用 LocalTime 创建 OffsetTime,时区偏移量为 0
LocalTime localTime = LocalTime.of(12, 30, 0);
OffsetTime offsetTime = OffsetTime.of(localTime);
System.out.println(offsetTime); // 输出:"12:30Z"
}
}
以上代码创建了一个 OffsetTime 对象,表示 12:30:00,并且时区偏移量为 0。由于时区偏移量为 0,输出结果中显示的是 “Z” 表示 UTC 时间。