Java 現在日時の取得と表示形式のサンプル

Javaの現在日時の取得と表示形式のサンプルです。

目次

ローカルの現在日時を取得(LocalDateTimeクラス)

ローカルの現在日時を取得するサンプルです。指定の表示形式で出力します。
LocalDateTimeクラスとDateTimeFormatterクラスは、JavaSE8で導入されました。

package test1;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Test1 {
	public static void main(String[] args) {
		
		// 現在日時を取得
		LocalDateTime d = LocalDateTime.now();
		System.out.println(d); //2018-02-11T13:02:49.380563400
		
		// 表示形式を指定
		DateTimeFormatter df1 = 
			DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss E");
		String s = df1.format(d); //format(d)のdは、11行目のd
		System.out.println(s); // 2018/02/11 13:02:49 日
		
		// 表示形式を指定
		DateTimeFormatter df2 = 
			DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒E曜日");
		String s2 = df2.format(d); //format(d)のdは、11行目のd
		System.out.println(s2); // 2018年02月11日 13時02分49秒日曜日
 	}
}

16行目は、DateTimeFormatterクラスのofPatternメソッドで"yyyy/MM/dd HH:mm:ss 曜日"の形式を指定しています。
22行目は、DateTimeFormatterクラスのofPatternメソッドでyyyy年MM月dd日 HH時mm分ss秒E曜日の形式を指定しています。
27行目は、LocalDateクラスのnowメソッドで現在日付を取得しています。
31行目は、LocalTimeクラスのnowメソッドで現在時刻を取得しています。

LocalDateTimeクラス

イミュータブル

  • インスタンスを作成した後、そのインスタンスの状態が変わらないことです。
  • 日付を加算をしても元のインスタンスは変わらず新しいインスタンスを返します。
  • Calendarクラスのインスタンスは状態を変えることができます。→ミュータブルです。

DateTimeFormatterクラス

ローカルの日付または時刻のみを取得(LocalDate/LocalTimeクラス)

現在日付のみ取得する場合は、LocalDateクラスを使用します。
現在の時刻のみを取得する場合は、LocalTimeクラスを使用します。
LocalDateクラスとLocalTimeクラスは、JavaSE8で導入されました。

package test1;
import java.time.LocalDate;
import java.time.LocalTime;

public class Test1 {
	public static void main(String[] args) {
		
		// 現在の日付のみを取得
		LocalDate d1 = LocalDate.now();
		System.out.println(d1); //2018-02-11
		
		// 現在の時刻のみを取得
		LocalTime t1 = LocalTime.now();
		System.out.println(t1); //18:55:25.544306600
 	}
}

 

タイムゾーンの現在日時を取得(ZonedDateTimeクラス)

タイムゾーンの現在日時を取得するサンプルです。指定の表示形式で出力します。
ZonedDateTimeクラスは、JavaSE8で導入されました。

package test1;
 
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Test1 {
	public static void main(String[] args) {
		
		// 現在日時を取得
		ZonedDateTime d 
			= ZonedDateTime.now(ZoneId.of("America/Los_Angeles"));
//			= ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
		System.out.println(d); 
		// 2018-02-10T20:11:40.213604300-08:00[America/Los_Angeles]
		
		// 表示形式を指定 
		DateTimeFormatter df1 = 
			DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss E");
		String s = df1.format(d); //format(d)のdは、11行目のd
		System.out.println(s); // 2018/02/10 20:11:40 土
		
		// 表示形式を指定
		DateTimeFormatter df2 = 
			DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒E曜日");
		String s2 = df2.format(d); //format(d)のdは、11行目のd
		System.out.println(s2); // 2018年02月10日 20時11分40秒土曜日
 	}
}

12行目は、タイムゾーンIDにAmerica/Los_Angelesを指定しています。
日本を指定する場合は、13行目のようにAsia/Tokyoを指定します。

ZonedDateTimeクラス(タイムゾーン)

ZoneIdクラス

 

Dateクラスで取得する(従来のやり方)

現在日時を取得するサンプルです。指定の表示形式で出力します。

package test1;
 
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Test1 {
	public static void main(String[] args) {
		
		// 現在日時を取得
		Date d = new Date();
		System.out.println(d); //Fri Aug 05 00:28:47 GMT+09:00 2016
	 
		// 表示形式を指定
		SimpleDateFormat d1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		String q1 = d1.format(d); // format(d)のdは、10行目のd
		System.out.println(q1); // 2016/08/05 00:28:47
	 
		// 表示形式を指定
		SimpleDateFormat d2 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
		String q2 = d2.format(d); // format(d)のdは、10行目のd
		System.out.println(q2); // 2016年08月05日 00時28分47秒
 	}
}

Dateクラス

SimpleDateFormatクラス

関連の記事

Java 日時の加算と減算のサンプル

プログラムでつまったらteratailに登録して質問しましょう!↓↓↓

△上に戻る