こんにちは。たいら(@tairaengineer2)です。
今回の記事はJavaのTimeZoneについての解説記事です。
スポンサーリンク
前提条件:eclipseの環境
この記事では、eclipseのバージョンは
バージョン | Eclipse4.7 Oxygen |
---|
を使っています。
インストールの仕方は、下の記事をご参考ください。
eclipseでのJavaプロジェクト作成方法は、以下の記事をご参考ください。
eclipseでのJavaファイル作成方法は、以下の記事をご参考ください。
TimeZoneとは
TimeZoneとは、
- 日付
- 時間
- 地域ごとのタイムゾーン
を扱うときに使うとても便利なライブラリです。
public abstract class TimeZone
extends Object
implements Serializable, Cloneable
TimeZoneは、タイムゾーン・オフセットを表します。また、サマー・タイムを認識します。
TimeZone (Java Platform SE 8)から引用させて頂きました
TimeZoneを使うときは、以下のようにimportが必要です。
import java.util.TimeZone;
次の章で実際に使って解説していきます。
サンプル1:デフォルトのタイムゾーンの取得の仕方
デフォルトのタイムゾーンを取得する場合、【getDefault】というメソッドを使います。
public static TimeZone getDefault()
Java仮想マシンのデフォルトのTimeZoneを取得します。
キャッシュされたデフォルトのTimeZoneが使用可能な場合は、そのクローンが返されます。それ以外の場合、このメソッドは次の手順に従ってデフォルトのタイムゾーンを判定します。
- user.timezoneプロパティの値が使用可能な場合は、それをデフォルトのタイムゾーンIDとして使用します。
- プラットフォームのタイムゾーンIDを検出します。プラットフォームのタイムゾーンとIDのマッピングのソースは、実装によって異なる場合があります。
- 指定または検出されたタイムゾーンIDが不明の場合は、最後の手段としてGMTを使用します。
TimeZone (Java Platform SE 8)から引用させて頂きました
【getDefault】メソッドの使い方を解説します。
解説で使うJavaプログラムの概要
【getDefault】メソッドを使ってデフォルトのTimeZoneを取得して表示させるだけのプログラムです。
日本で実行しているので、デフォルト値は日本のタイムゾーンが設定されていればOKです。
Javaプログラム
package sample;
import java.util.TimeZone;
/**
* TimeZoneを練習するクラス
*
*/
public class TimeZoneSample {
/**
* メインメソッド
* @param args
*/
public static void main(String[] args) {
// デフォルトのTimeZoneを取得
TimeZone timeZone = TimeZone.getDefault();
// デフォルトのTimeZoneを表示
System.out.println(timeZone.getDisplayName());
}
}
実行結果
日本標準時
デフォルト値が日本の標準時刻であることが確認できました!
解説
【getDisplayName】メソッドについて解説します。
【getDisplayName】メソッドは、引数だけ異なって名前は同じメソッド、つまりオーバーロードされているため、ここでは引数がない場合の 【getDisplayName】メソッドを解説します。
引数が無い【getDisplayName】は、ユーザーに適したタイムゾーンの名前を返すメソッドです。
TimeZone (Java Platform SE 8)から引用させて頂きました
public final String getDisplayName()
デフォルト・ロケールでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。
今回で言うと、日本で実行しているので日本のタイムゾーンがデフォルト値として渡されたため
日本標準時
と表示されました。
サンプル2:指定したタイムゾーンの取得の仕方
指定したタイムゾーンを取得する場合、【getTimeZone】というメソッドを使います。
public static TimeZone getTimeZone(String ID)
指定されたIDのTimeZoneを取得します。
TimeZone (Java Platform SE 8)から引用させて頂きました
様々な国と地域で設定されているため、タイムゾーンのIDは膨大な数です。
タイムゾーンのIDは、
- 短縮形式
- 完全な形式
の2種類あります。
この記事では、本当にごく一部のみ抜粋して下記にまとめました。
国 | 短縮形式 | 完全な形式 |
---|---|---|
日本標準時 | JST | Asia/Tokyo |
アメリカ東部標準時 | EST | America/Atikokan |
ハワイ・アリューシャン標準時 | HST | US/Hawaii |
中国標準時 | CST | Asia/Chongqing |
東ヨーロッパ標準時 | EET | Africa/Cairo |
西ヨーロッパ標準時 | WET | Africa/Casablanca |
インド標準時 | IST | Asia/Calcutta |
タイムゾーンのIDは、完全な形式を使うことが公式で推奨されています。
なぜなら短縮形式だと、ダブっているIDも存在するからです。
短縮形式は、JDK 1.1.xとの互換性のためだけにサポートされているため、完全な名前を使用する必要がある
TimeZone (Java Platform SE 8)から引用させて頂きました
【getTimeZone】メソッドの使い方を解説します。
解説で使うJavaプログラムの概要
【getTimeZone】メソッドを使って、指定したTimeZoneを取得して表示させるだけのプログラムです。
指定するタイムゾーンはハワイ・アリューシャン標準時です。
Javaプログラム
package sample;
import java.util.TimeZone;
/**
* TimeZoneを練習するクラス
*
*/
public class TimeZoneSample {
/**
* メインメソッド
* @param args
*/
public static void main(String[] args) {
// ハワイのTimeZoneを取得
TimeZone timeZone = TimeZone.getTimeZone("US/Hawaii");
// ハワイのTimeZoneを表示
System.out.println(timeZone.getDisplayName());
}
}
実行結果
ハワイ標準時
指定した通り、ハワイの標準時間が設定できたことを確認できました!
スポンサーリンク
まとめ:TimeZoneを使ってみよう!
以上がTimeZoneの仕様について解説しました。
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
ほかにもJava解説記事を書いてます。
よければご参考ください。
今までブログで書いたJavaの解説記事のまとめは、こちらをご参考ください。