【java】Dateクラスの色々な使い方

Dateクラスの特徴

1970年1月1日0時からの経過時間をミリ秒数のlong値で保持している(1970年1月1日0時のことをエポックという)



Dateクラスで現在の日時を取得する方法

import java.util.Date;
public class Main{
	public static void main(String[] args){
		Date now = new Date();
		System.out.println(now);
	}
}

出力結果:
Thu Feb 02 22:04:28 GMT+09:00 2017

Dateクラスに日時をセットする方法(インスタンス版)

import java.util.Date;
public class Main{
	public static void main(String[] args){
		Date time = new Date(1316622225935L);
		System.out.println(time);
	}
}

出力結果:
Thu Sep 22 01:23:45 GMT+09:00 2011

Date time = new Date(1316622225935L);について

最後の「L」はlong値である事を示す。

Dateクラスは「1970年1月1日0時からの経過時間をミリ秒数のlong値で保持している
」ので、こんな複雑な値になっている。

このミリ秒をざっくり計算する。

以下のサイトで計算した。
オンライン単位変換-独自のフリー変換ツールを使用


そうすると、41.72年となった。

なるほど、1970年からの値で、結果が2011年という事なので納得。

Long値を簡単に説明すると

すっごい大量の整数値が入る型のこと。
19桁だかなんだか、そのくらい入ったはず。


Dateクラスに日時をセットする方法(setTime版)

import java.util.Date;
public class Main{
	public static void main(String[] args){
		Date time = new Date();
		time.setTime(1316622225935L);
		System.out.println(time);
	}
}

Dateクラスってそのままじゃ扱いにくいから、SimpleDateFormatクラス

import java.util.*;
import java.text.*;
public class Main{
	public static void main(String[] args){
		Date time = new Date();
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy'年'MM'月'dd'日'ss'秒'SS'ミリ'");
		System.out.println(sdf1.format(time));
	}
}

これなら読みやすい。

シングルコーテーション「'」で単位を入力。

  • yyyy→年
  • MM→月
  • dd→日
  • ss→秒
  • SS→ミリ