【Java】タイムゾーンを設定するTimeZoneクラスの使い方!

  • このエントリーをはてなブックマークに追加
  • Pocket

Javaでタイムゾーンを表示したり、操作したりしたいときはTimeZoneクラスを使う。

このページではTimeZoneクラスについてまとめた。サンプルコードも用意しているので、参考になるはずだ。

JavaのTimeZoneクラス

タイムゾーンとは?

「時差」があるように地域によって、時間は違う。同じ時間を扱う地域をタイムゾーンという。

イギリスのグリニッジを中心に15度ずつ分割されたものだ。360度÷24時間=15度のため、このように決められている。

日本は韓国やインドネシアと同じタイムゾーンにある。日本国内は同一時間なので、タイムゾーンを意識する機会はあまりないと思うが、国をまたがって使われるアプリケーションやサーバーが外国にあるなどの場合、日付処理の際にその地域のタイムゾーンを意識することが必要だ。

Javaのタイムゾーン

Javaでタイムゾーンは、java.utilパッケージにあるTimeZoneクラスで扱うことができる。TimeZoneクラスを用いれば、世界各地の日付や時間の情報を取得して表示や利用することができるようになる。

主なタイムゾーンID

次のようなタイムゾーンが用意されている。

タイムゾーン

タイムゾーンID

日本標準時

Asia/Tokyo

グリニッジ標準時

Europe/London

アラビア標準時

Asia/Kuwait

東部標準時

America/New_York

太平洋標準時

America/Los_Angeles

ハワイ標準時

US/Hawaii

オブジェクトの取得

TimeZoneクラスは抽象クラスなので、new演算子を使って生成できない。オブジェクトの取得は以下のようになる。

デフォルトタイムゾーンを取得するTimeZone.getDefault ()

戻り値の型

Public static TimeZone

内容

 デフォルトのタイムゾーンを持つ、TimeZoneオブジェクトを取得する。

タイムゾーンIDを指定するTimeZone.getTimeZone(String ID)

戻り値の型

Public static TimeZone

内容

引数に指定されたタイムゾーンIDに基づいた、TimeZoneオブジェクトを取得する。

主なメソッド

主なメソッドは次の通りだ。

IDの一覧を取得するTimeZoneオブジェクト. getAvailableIDs( )

戻り値の型

Public String[]

内容

サポートされる利用可能な ID をすべて取得する。

戻り値:

ID の配列

タイムゾーン名を返すTimeZoneオブジェクト. getDisplayName( )

戻り値の型

Public String

内容

デフォルトロケールでの現在のタイムゾーンの名前を、ユーザーへの表示に適した形式で返す。このメソッドは、長い名前を返す。 ( 夏時間は含まれない)

ロケールの表示名がない場合、このメソッドは規定化されたカスタム ID 形式で文字列を返す。

戻り値:

デフォルトロケールでの現在のタイムゾーンを、人が理解できる形式にした名前

現在のタイムゾーンを取得するTimeZoneオブジェクト. getID( )

戻り値の型

Public String

内容

現在の所在地のタイムゾーンの ID を取得する。

戻り値:

現在の所在地のタイムゾーンの ID

タイムゾーンIDを設定するTimeZoneオブジェクト. setID( String ID)

戻り値の型

void

内容

タイムゾーン ID を設定する。

引数:

ID - 新しいタイムゾーン ID

これらのメソッドが用意されているので、状況に応じて使い分けていけばいいだろう。

タイムゾーンに関するTimeZoneクラスサンプルコード

Calendarクラスを使用したサンプルコード

実行結果

サンプルコードの説明

  • [1] デフォルト情報のタイムゾーンオブジェクトtzn1を取得。
  • [2] tzn1をもとにCalendarオブジェクトcal1を取得。
  • [3] getID メソッドを使用してtzn1のタイムゾーンIDを表示。
  • [4] getDisplayName メソッドを使用し、tzn1のタイムゾーンを表示
  • [5] cal1の日付情報を表示。
  • [6] タイムゾーンID "US/Hawaii”のタイムゾーンオブジェクトtzn2を取得。
  • [7] Calendarオブジェクトcal1にタイムゾーンtzn2を設定。
  • [8] tzn2のタイムゾーンIDを表示。
  • [9] tzn2のタイムゾーンを表示
  • [10]cal1の日付情報を表示。

Dateクラスを使用したサンプルコード

実行結果

サンプルコードの説明

  • [1] getTimeZoneメソッドを使用し、タイムゾーンID Europe/Londonを設定したタイムゾーンオブジェクトtznを取得。
  • [2] Dateオブジェクトdateを生成し実行時の日付情報を取得。SimpleDateFormatオブジェクトfmtで書式を設定した文字列に変換して表示。
  • [3] fmtにsetTimeZone メソッドを使用してtznを設定。文字列に変換して表示。

Calendarクラスと違いDateクラスではタイムゾーンが考慮されておらず、関連するメソッドは用意されていない。

その場合サンプルコードのようにSimpleDateFormatのsetTimeZoneメソッドを使用してタイムゾーンを設定して表示できるので参考にしていただきたい。

まとめ

このページではJavaのタイムゾーンを扱うTimeZoneクラスについてまとめてきた。

アプリケーションをグローバル展開するときなど、必ず使うクラスになっている。ぜひ、この機会に使い方を理解しておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する