JavaのTimeZoneクラスを利用してDateデータにタイムゾーンを設定する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaのTimeZoneクラスを利用してDateデータにタイムゾーンを設定する方法について解説しています。TimeZoneクラスを使うと世界各地域のタイムゾーンの取得、設定を行うことができます。主なタイムゾーンID、設定の方法を覚えておきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaのTimeZoneクラスを利用してDateデータにタイムゾーンを設定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

今回は、Javaに関する内容だね!

どういう内容でしょうか?

TimeZoneクラスを利用してDateデータにタイムゾーンを設定する方法について詳しく説明していくね!

お願いします!
目次
Date型オブジェクトについて
Date型オブジェクトとは現在時刻を取得したり、日時の計算をする際に使われるオブジェクトです。Dateクラスはjava.utilパッケージにあるクラスです。使用する時はjaba.util.Dateをインポートする必要があります。
TimeZoneクラスとは
TimeZoneクラスは地域で異なるタイムゾーンの取得や設定をすることができるクラスです。TimeZoneクラスはjava.utilパッケージにあるクラスで、使用する時はjaba.util.TimeZoneをインポートする必要があります。
タイムゾーンはイギリスのグリニッジを中心に経度15度ずつで分割されています。Javaで次のようなタイムゾーンが準備されています
| タイムゾーン | タイムゾーンID |
|---|---|
| 日本時間 | Asia/Tokyo |
| グリニッジ標準時 | Europe/London |
| 太平洋標準時(米国およびカナダ) | America/Los_Angeles |
| 中部標準時(米国およびカナダ) | America/Chicago |
| 東部標準時(米国およびカナダ) | America/New_York |
| ハワイ | Pacific/Honolulu |
タイムゾーンを設定する方法
タイムゾーンを設定するには以下のように記述します
Date 変数 = new Date(); TimeZone 変数 = TimeZone.getTimeZone(タイムゾーンID); SimpleDateFormat フォーマット = new SimpleDateFormat(); フォーマット.setTimeZone(timeZoneJP); フォーマット.format(date変数);
SimpleDateFormatクラスを使うことでTimeZoneの設定をすることが可能です。その後フォーマットクラスのformat変数を使うことでDate型のTimeZoneを変更することができます。
実際に書いてみよう
では実際にTimeZoneクラスを使ってDateデータにタイムゾーンを設定してみましょう
プログラムソースコード
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class SampleClass {
public static void main(String[] args) throws ParseException {
Date date = new Date();
TimeZone timeZoneJP = TimeZone.getTimeZone("Asia/Tokyo");
SimpleDateFormat fmt = new SimpleDateFormat();
fmt.setTimeZone(timeZoneJP);
System.out.println(fmt.format(date));
TimeZone timeZoneLO = TimeZone.getTimeZone("Europe/London");
fmt.setTimeZone(timeZoneLO);
System.out.println(fmt.format(date));
TimeZone timeZoneNY = TimeZone.getTimeZone("America/New_York");
fmt.setTimeZone(timeZoneNY);
System.out.println(fmt.format(date));
}
}
実行結果
2020/04/23 16:10 2020/04/23 8:10 2020/04/23 3:10
まとめ
この記事ではJavaのTimeZoneクラスを利用してDateデータにタイムゾーンを設定する方法について解説しました。
監修してくれたメンター
| メンターSさん
システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。 JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。 TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。 |

内容分かりやすくて良かったです!

ゆかりちゃんも分からないことがあったら質問してね!

分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。