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