システムの現在のZoneOffsetを取得したい。
それを試みましたが、方法が見つかりませんでした。
また、解決策を探していましたが、見つかりませんでした。
Javaでそれを行うことは可能ですか?
編集:
私の質問は this とは異なります。 TimeZoneオフセット表現とTimeZone格納の間の変換方法ではなく、現在のシステムUTCを知りたいのですが。
はい、可能です:
ZoneOffset.systemDefault().getRules().getOffset(Instant.now())
または、インスタントインスタンスをLocalDateTimeインスタンスに置き換えることができます。
ZoneOffset.systemDefault().getRules().getOffset(LocalDateTime.now())
リクエストには2つの部分があります。
ZoneId.systemDefault()
Instant.now()
これらは、ZoneRules
を使用して結合され、以下を取得します。
_ZoneOffset o = ZoneId.systemDefault().getRules().getOffset(Instant.now());
_
単純にするために、OffsetDateTime
を使用することができます。
_ZoneOffset o = OffsetDateTime.now().getOffset();
_
これは、OffsetDateTime.now()
がZoneId.systemDefault()
とInstant.now()
の両方を内部で使用するため機能します。