「Java8」java.time.ZoneId クラスで特定のタイムゾーンの現在日時を取得する
環境
JavaSE 1.8
Eclipse IDE 2019-12
書式
1.public static DateTimeFormatter ofPattern(String pattern)
指定されたパターンを使用してフォーマッタを作成します。
2.public static LocalDateTime now()
デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。
3.public static ZoneId of(String zoneId)
IDからZoneIdのインスタンスを取得し、IDが有効で使用できることを確認します。
パラメータ:zoneId – タイムゾーンID、nullでない
特定のタイムゾーンの日時を取得したい場合は、java.time.ZoneId クラスを使用してタイムゾーンを指定します。
使用例
package com.arkgame.study; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; public class ArkgamelDemo { // フォーマット変数の宣言 private static final String FMT = "yyyy/MM/dd HH:mm:ss"; // タイムゾーン変数の宣言 例America/Los_Angeles private static final String TIMEZONEA = "America/Los_Angeles"; // タイムゾーン変数の宣言 例America/Los_Angeles private static final String TIMEZONEB = "Asia/Tokyo"; public static void main(String[] args) { // 日付/時間オブジェクトの出力および解析のためのフォーマッタ DateTimeFormatter dtf = DateTimeFormatter.ofPattern(FMT); // 現在時刻を取得 LocalDateTime dtA = LocalDateTime.now(ZoneId.of(TIMEZONEA)); System.out.println("America/Los_Angelesの現在の時刻:" + dtA.format(dtf)); // 現在時刻を取得 LocalDateTime dtB = LocalDateTime.now(ZoneId.of(TIMEZONEB)); System.out.println("\nAsia/Tokyoの現在の時刻:" + dtB.format(dtf)); } }
実行結果
America/Los_Angelesの現在の時刻:2022/05/26 17:34:25 Asia/Tokyoの現在の時刻:2022/05/27 09:34:25