PHASE2 LOG

主にIT関連・ゲームのログ

Javaのお勉強~時間のクラス~

   

 

今回は時間に関するクラスについてお勉強です。

しばらくスレッドについて勉強しておりますが、なかなか難しくて遅れてます…

全然更新していないのもこっちに時間がかかっているからです(;´∀`)

 

ちょっと息抜きに別のお勉強をしてみます!

 

現在時刻の取得

 

現在の時刻を取得するにはSystemクラスcurrentTimeMillis()メソッドを利用します。


long real = System.currentTimeMilis();

このメソッドは1970年1月1日0時0分0秒から現在までの経過時間(ミリ秒)をlong型で返します。

しかも、イギリスの標準時なのに時差は考慮されていません。

 

これでは使い物にならないですよね…

そこでDateクラスを使用して取得した値を変換することが必要です。

Dateクラスを利用するにはjava.utilパッケージをインポートします。


import java.util*;

Date today = new Date(real);

 

引数にはcurrentTimeMillis()メソッドの値が入った変数を指定します。

もし、引数がない場合は現在時刻を取得します。

 

Calendarクラス

 

Calendarクラスを利用すると、Dateクラスのオブジェクトの値を年・月・日・時間などに

変換することができます。

 

これをグレゴリオ暦に合わせるにはCalendarクラスのサブクラスである

GregorianCalendarクラスを使います。

 

GregorianCalenderクラスには様々なフィールドが用意されているのでこちらを参考にしてみてください。

GregorianCalendar (Java Platform SE 6)

 

それでは実際の例を見てみましょう。

//java.utilをインポート
import java.util.*;

public class TimeTest {
	public static void main(String[] args){
		//1970/1/1 0:0:0からの経過時間をミリ秒で
		long real = System.currentTimeMillis();
		Date date = new Date(real);
		//現在時刻を出力
		System.out.println(date);
		
		//GregorianCalendarクラスをインスタンス化
		Calendar greg = new GregorianCalendar();
		
		//Calendar.YEARに値が存在するか
		boolean is = greg.isSet(Calendar.YEAR);
		System.out.println(is);
		
		//現在の年月日を表示
		System.out.println(greg.get(Calendar.YEAR) + "年"
				+ greg.get(Calendar.MONTH) + "月"	//Monthは0~11
				+ greg.get(Calendar.DAY_OF_MONTH) + "日");
		}
}

 

isSet()メソッドを使うと引数に指定したフィールドに値が設定されているか判定できます。

 

年月日を表示する処理では、「Calendar.YEAR」のようにして

CalendarクラスのフィールドYEARを参照しています。

 

Calendar.MONTHの「MONTH」は0はじまりなので、1月は0、12月は11という感じになりますので

間違えないように気をつけましょう。

 

今回はそんなに難しいことはしていないのでしっかり記憶しておきます(笑)

 

人気ブログランキング

 -