オーダーメイドコース
icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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] 未経験からWebエンジニアを目指す方法とは

書式に和暦を指定する

和暦を表示したい場合は、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人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。