日時を表示!JavaでSimpleDateFormatを使う方法【初心者向け】

初心者向けにJavaでSimpleDateFormatを使う方法について解説しています。Dateで取得した日時のデータを指定のフォーマットに変換することができます。Dateクラスとあわせて覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

この記事では、JavaのSimpleDateFormatクラスについて解説します。

日付や時間を取得して表示する際に使うので、書き方を覚えておきましょう。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

simpledateformatの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

SimpleDateFormatとは

SimpleDateFormatクラスを使用して、Dateクラスが保持する日付情報を指定する書式の文字列に変換することができます。

 

SimpleDateFormatの使い方

SimpleDateFormatクラスのインスタンスを作成する際、コンストラクタの引数に書式を指定します。

その後SimpleDateFormatクラスのformatメソッドを使用して日付を文字列へ変換します。

public static void main(String[] args) {

  //現在日時の取得
  Date d = new Date();

  //書式の作成
  SimpleDateFormat sdf = new SimpleDateFormat("GGGGy年 M月 d日 (E) a h時 m分 s秒");

  //指定書式に変換して表示
  System.out.println(sdf.format(d));

}

 

実行結果は

西暦2018年 5月 11日 (金) 午後 4時 8分 1秒

になります。※実行日時により結果は変わります。

コンストラクタの引数”GGGGy年 M月 d日 (E) a h時 m分 s秒”が指定する書式です。

書式の指定にはパターン文字を使用します。よく使うパターン文字は下記になります。

パターン文字:意味
  G :紀元
  y :年
  M :年における月
  E :曜日の名前
  H :一日における時(0 - 23)
  h :午前または午後の時(1 - 12)
  m :分
  s :秒

パターン文字は字数で表現方式が変わります。

例えばMは月の情報を表しますがMMとすると月が一桁の場合に先頭に0がつきます。

下記の例では、月、日、時、分、秒をすべて2桁で指定しています。

public static void main(String[] args) {

  //現在日時の取得
  Date d = new Date();

  //書式の作成
  SimpleDateFormat sdf = new SimpleDateFormat("GGGGy年 MM月 dd日 (E) a hh時 mm分 ss秒");

  //指定書式に変換して表示
  System.out.println(sdf.format(d));

}

実行結果は

西暦2018年 05月 11日 (金) 午後 04時 13分 02秒

になります。

 

[PR] Javaで挫折しない学習方法を動画で公開中

書式に和暦を指定する

和暦を表示したい場合は、SimpleDateFormatクラスのインスタンスを作成する際のコンストラクタの引数で、書式に加えロケールを指定します。

ロケールは特定の地域を表します。日本を指定するロケールは下記のように作成することができます。

Locale japan = new Locale("ja","JP","JP");

 

実際に書いてみよう

和暦を指定して日付を出力します。

ソースコード

public static void main(String[] args) {

  //現在日時の取得
  Date d = new Date();

  //日本のロケールを作成
  Locale japan = new Locale("ja","JP","JP");

  //書式の作成
  SimpleDateFormat sdf = new SimpleDateFormat("GGGGy年 MM月 dd日 EEEE a hh時 mm分 ss秒",japan);

  //指定書式に変換して表示
  System.out.println(sdf.format(d));

}

実行結果

平成30年 05月 11日 金曜日 午後 04時 27分 59秒

になります。

GGGGyで指定する部分が和暦表示になりました。

 

入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。