エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

JavaのTimeZoneとCalendarを使っていろいろ表示させる

こんにちは、たいらです。
今回はJavaのアウトプット記事です。
TimeZoneを使ったプログラムを2つ作りました。

目次

1つ目

1つ目のプログラムはデフォルトのTimeZoneと指定したTimeZoneを表示させるだけのプログラムです。

Javaプログラム

import java.util.TimeZone;

/**
* TimeZoneを練習するクラス
*
*/
public class TimeZoneTest {
	/**
	* メインメソッド
	* @param args
	*/
	public static void main(String[] args) {
		// デフォルトのTimeZoneを取得
		TimeZone defaultTimeZone = TimeZone.getDefault();

		// 日本を指定してTimeZoneを取得
		TimeZone japanTimeZone = TimeZone.getTimeZone("JST");

		// デフォルトと日本のTimeZoneを出力
		System.out.println(defaultTimeZone.getDisplayName());
		System.out.println(japanTimeZone.getDisplayName());
	}
}

実行結果

日本標準時
日本標準時 

当たり前ですが、日本で実行してるので、デフォルトで日本となってますね。

2つ目

2つ目のプログラムは指定したTimeZoneのCalendarの現在時刻を表示させます。

Javaプログラム

import java.util.TimeZone;
import java.util.Calendar;

/**
* TimeZoneを練習するクラス
*
*/
public class TimeZoneTest {
	/**
	* メインメソッド
	* @param args
	*/
	public static void main(String[] args) {
		// 国際標準時を指定してTimeZoneを取得
		TimeZone utc = TimeZone.getTimeZone("UTC");

		// Calendarを生成し、国際標準時を設定
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeZone(utc);

		// 国際標準時を表示
		System.out.println(utc.getDisplayName());
		System.out.println(calendar.get(Calendar.YEAR) + "年"
				+ (calendar.get(Calendar.MONTH) + 1) + "月"
				+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
				+ calendar.get(Calendar.HOUR_OF_DAY) + "時"
				+ calendar.get(Calendar.MINUTE) + "分"
				+ calendar.get(Calendar.SECOND) + "秒");

		// 日本時間を指定してTimeZoneを取得
		TimeZone jst = TimeZone.getTimeZone("JST");

		// 日本時間を表示
		calendar.setTimeZone(jst);
		System.out.println(jst.getDisplayName());
		System.out.println(calendar.get(Calendar.YEAR) + "年"
				+ (calendar.get(Calendar.MONTH) + 1) + "月"
				+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
				+ calendar.get(Calendar.HOUR_OF_DAY) + "時"
				+ calendar.get(Calendar.MINUTE) + "分"
				+ calendar.get(Calendar.SECOND) + "秒");
	}
}

実行結果

協定世界時
2017年9月23日7時53分8秒
日本標準時
2017年9月23日16時53分8秒

このように時差が分かります。
今のところ日本内での開発しかやったことありませんが、国際的な開発になってくるとこういうことも気にしていかないといけないんですね

まとめ

TimeZoneの仕様について少し理解が深まったと思います。
いかがだったでしょうか?
この記事が皆さんのご参考になれば幸いです。

ではでは~(・ω・)ノシ

参考にさせて頂いたサイト様

Javaの道:日付・時刻(4.TimeZoneクラス)

時間帯リスト