「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

 

Java

Posted by arkgame