「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 クラスを使用してタイムゾーンを指定します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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));
}
}
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)); } }
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));
      }

}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
America/Los_Angelesの現在の時刻:2022/05/26 17:34:25
Asia/Tokyoの現在の時刻:2022/05/27 09:34:25
America/Los_Angelesの現在の時刻:2022/05/26 17:34:25 Asia/Tokyoの現在の時刻:2022/05/27 09:34:25
America/Los_Angelesの現在の時刻:2022/05/26 17:34:25

Asia/Tokyoの現在の時刻:2022/05/27 09:34:25

 

Java

Posted by arkgame