LoginSignup
0
0

JavaのDateTimeFormatterについて

Posted at

はじめに

JavaのDateTimeFormatterについてまとめてみた。
Javaには日付や時刻を扱うためのクラス「DateTimeFormatter」が存在している。
このクラスを使用し、日付や時刻を表現するには3つの方法がある。
・DateTimeFormatterクラス内の定数を使用する
・パターン文字を使用する
・FormatStyleを使用する

事前に定義された定数を使用する

DateTimeFormatterクラスにあるstatic定数を使って日付・時刻を表現する。

LocalDateTime dateTime = LocalDateTime.of(2023, 12, 17, 12, 10, 50);
        
DateTimeFormatter basicIsoDate = DateTimeFormatter.BASIC_ISO_DATE;
System.out.println(basicIsoDate.format(dateTime));
// 実行結果
// 20231217
DateTimeFormatter isoLocalDate = DateTimeFormatter.ISO_LOCAL_DATE;
System.out.println(isoLocalDate.format(dateTime));
// 実行結果
// 2023-12-17    
DateTimeFormatter isoLocalTime = DateTimeFormatter.ISO_LOCAL_TIME;
System.out.println(isoLocalTime.format(dateTime));
// 実行結果
// 12:10:50

パターン文字を使用する

大文字と小文字のアルファベットを使用して日付・時刻を表現する。

LocalDateTime dateTime = LocalDateTime.of(2023, 12, 17, 12, 10, 50);
        
DateTimeFormatter dateTimeFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日HH時mm分ss秒");
System.out.println(dateTimeFormat.format(dateTime));
// 実行結果
// 2023年12月17日12時10分50秒

FormatStyleを使用する

列挙型FormatStyleを使用して日付・時刻を表現する。

LocalDateTime dateTime = LocalDateTime.of(2023, 12, 17, 12, 10, 50);

// ロケールが日本

DateTimeFormatter formatFull = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(Locale.JAPAN);
System.out.println(formatFull.format(dateTime));
// 実行結果
// 2023年12月17日日曜日
DateTimeFormatter formatLong = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).withLocale(Locale.JAPAN);
System.out.println(formatLong.format(dateTime));
// 実行結果
// 2023年12月17日
DateTimeFormatter formatMedium = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.JAPAN);
System.out.println(formatMedium.format(dateTime));
// 実行結果
// 2023/12/17
DateTimeFormatter formatShort = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locale.JAPAN);
System.out.println(formatShort.format(dateTime));
// 実行結果
// 2023/12/17


// ロケールがアメリカ

DateTimeFormatter formatFull_US = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(Locale.US);
System.out.println(formatFull_US.format(dateTime));
// 実行結果
// Sunday, December 17, 2023
DateTimeFormatter formatLong_US = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).withLocale(Locale.US);
System.out.println(formatLong_US.format(dateTime));
// 実行結果
// December 17, 2023
DateTimeFormatter formatMedium_US = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.US);
System.out.println(formatMedium_US.format(dateTime));
// 実行結果
// Dec 17, 2023
DateTimeFormatter formatShort_US = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locale.US);
System.out.println(formatShort_US.format(dateTime));
// 実行結果
// 12/17/23
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0