📅  最后修改于: 2023-12-03 14:42:53.902000             🧑  作者: Mango
ZoneOffset 是 Java8 中用于表示时区偏移的类,可以作为 LocalDateTime、Instant、OffsetDateTime 等时间类的一个属性。在 Java8 中,我们可以通过 ZoneOffset 查询(TemporalQuery)方法进行 ZoneOffset 的获取。
查询(TemporalQuery)方法是 Java8 中用于查询 Temporal 对象的方法,并返回一个特定类型的值。
在 ZoneOffset 类中,我们可以通过以下三种查询(TemporalQuery)方法获取 ZoneOffset 对象:
以上三个方法都是静态方法,需要使用类名进行调用。
我们可以通过 LocalDateTime 类的 parse() 方法将一个字符串解析为 LocalDateTime 对象,然后使用 from 方法将其转化为对应的 ZoneOffset 对象。
import java.time.LocalDateTime;
import java.time.ZoneOffset;
public class ZoneOffsetDemo {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.parse("2021-07-19T10:32:10");
System.out.println(dateTime.atZone(ZoneOffset.UTC).getOffset());
}
}
以上代码中,我们将字符串 "2021-07-19T10:32:10" 解析为 LocalDateTime 对象 dateTime,然后使用 atZone() 方法将其转化为对应的 ZoneOffset 对象,最后调用 getOffset() 方法获取偏移量。
输出结果为:
Z
我们也可以直接使用 offset 方法来获取指定偏移量的 ZoneOffset 对象。
import java.time.ZoneOffset;
public class ZoneOffsetDemo {
public static void main(String[] args) {
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
System.out.println(zoneOffset);
}
}
以上代码中,我们使用 ofHours() 方法获取一个偏移量为 8 小时的 ZoneOffset 对象,并直接输出该对象。
输出结果为:
+08:00
还可以使用 ofTotalSeconds 方法获取指定秒数的 ZoneOffset 对象。
import java.time.ZoneOffset;
public class ZoneOffsetDemo {
public static void main(String[] args) {
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);
System.out.println(zoneOffset);
}
}
以上代码中,我们使用 ofTotalSeconds() 方法获取一个 28800 秒偏移量的 ZoneOffset 对象,并直接输出该对象。
输出结果为:
+08:00
以上就是 Java 中的 ZoneOffset 查询(TemporalQuery)方法及示例的介绍,希望对大家有所帮助。