java date 设置时区,Java 日期时区
Java日期時區
ZoneOffset表示與UTC時區偏移的固定區域。
ZoneOffset不跟蹤由夏令時導致的區域偏移的更改。
ZoneOffset類聲明三個常量:UTC
MAX
MIN
UTC是UTC的時區偏移常量。
MAX和MIN是最大和最小支持的區域偏移。
Z用作UtC時區的區域偏移指示符。
我們可以用小時,分鐘和秒的組合創建ZoneOffset。import java.time.ZoneOffset;
public class Main {
public static void main(String[] args) {
ZoneOffset zoneOffset1 = ZoneOffset.ofHours(-1);
System.out.println(zoneOffset1);
ZoneOffset zoneOffset2 = ZoneOffset.ofHoursMinutes(6, 30);
System.out.println(zoneOffset2);
ZoneOffset zoneOffset3 = ZoneOffset.ofHoursMinutesSeconds(9, 30, 45);
System.out.println(zoneOffset3);
}
}
上面的代碼生成以下結果。
例2
以下代碼顯示如何從偏移創建區域偏移。import java.time.ZoneOffset;
public class Main {
public static void main(String[] args) {
ZoneOffset zoneOffset1 = ZoneOffset.of("+05:00");
ZoneOffset zoneOffset2 = ZoneOffset.of("Z"); // Same as ZoneOffset.UTC System.out.println(zoneOffset1);
System.out.println(zoneOffset2);
}
}
上面的代碼生成以下結果。
例3
以下代碼從ZoneOffset輸出常量值。import java.time.ZoneOffset;
public class Main {
public static void main(String[] args) {
System.out.println("ZoneOffset.UTC: " + ZoneOffset.UTC);
System.out.println("ZoneOffset.MIN: " + ZoneOffset.MIN);
System.out.println("ZoneOffset.MAX: " + ZoneOffset.MAX);
}
}
上面的代碼生成以下結果。
注意
Java Date-Time API支持以小時,分鐘和秒為單位的區域偏移量。
來自ZoneOffset的compareTo()允許我們比較兩個區域偏移。
+1:30的區域偏移在+1:00的區域偏移之前。
Java Date-Time API支持-18:00到+18:00之間的區域偏移。
ZoneId
ZoneId表示區域偏移及其用于更改區域偏移的規則夏令時。
ZoneOffset表示從UtC時區偏移的固定區域,而ZoneId表示可變區偏移。
這些更改是由時區規則定義的。
時區ID
每個時區都有一個ID,可以用三種格式定義:在區域偏移中,可以是“Z”,“+ hh:mm:ss”或“-hh:mm:ss”,例如“+01:00”。
前綴為“UTC”,“GMT”或“UT”,后跟區域偏移量,例如“UTC + 01:00”。
在區域名稱中,例如,“美洲/芝加哥”。
以下代碼顯示如何使用of()工廠方法創建ZoneId。import java.time.ZoneId;
public class Main {
public static void main(String[] args) {
ZoneId usChicago = ZoneId.of("America/Chicago");
System.out.println(usChicago);
ZoneId fixedZoneId = ZoneId.of("+01:00");
System.out.println(fixedZoneId);
}
}
上面的代碼生成以下結果。
例4
ZoneId中的getAvailableZoneIds()返回所有已知時區ID。import java.time.ZoneId;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set zoneIds = ZoneId.getAvailableZoneIds();
for (String zoneId: zoneIds) {
System.out.println(zoneId);
}
}
}
上面的代碼生成以下結果。
ZoneRules
ZoneRules跟蹤區域偏移如何變化。
下面的代碼顯示了如何使用ZoneRules以獲取有關ZoneId的時間偏移和時間更改的信息。import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.zone.ZoneOffsetTransition;
import java.time.zone.ZoneRules;
import java.util.List;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
ZoneId usChicago = ZoneId.of("America/Chicago");
System.out.println("Zone ID: " + usChicago.getId());
ZoneRules rules = usChicago.getRules();
System.out.println("isFixedOffset(): " + rules.isFixedOffset());
ZoneOffset offset = rules.getOffset(now);
System.out.println("Zone offset: " + offset);
List transitions = rules.getTransitions();
System.out.println(transitions);
}
}
上面的代碼生成以下結果。
總結
以上是生活随笔為你收集整理的java date 设置时区,Java 日期时区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Designing ML System
- 下一篇: 昔我往矣,杨柳依依,今我来思,雨雪霏霏