【Java入門】SimpleDateFormatで日付フォーマットの設定

SimpleDateFormatで 日付フォーマットを設定する

Javaには日付を表示するときのフォーマットを設定することができます。この記事では、日付のフォーマットについて、

  • 【基礎】SimpleDateFormatクラスの日付のフォーマットとは
  • 【基礎】yyyy/MM/ddのフォーマットを設定する方法
  • 【基礎】他の日付のフォーマットに変更する方法
  • 【発展】日付をString型に変換する方法
  • 【発展】日付パターンをチェックする方法


などの基礎から発展した使い方についても解説していきます。今回はそんな日付のフォーマット処理について、さまざまな方法をわかりやすく解説します!

SimpleDateFormatクラスの日付パターンとは

日付のフォーマットを設定するには、SimpleDateFormatクラスを使用して、インスタンスの引数に日付フォーマットを指定する必要があります。

SimpleDateFormatクラスを使用するには、以下のパッケージをインポートします。

日付パターン文字列について表にまとめました。

文字説明出力例(記述例)
G紀元AD(G)
y1996(yyyy); 96(yy)
MJuly(MMMM); Jul(MM); 07(MM)
w年における週27(ww)
W月における週2(W)
D年における日189(DDD)
d月における日10(dd)
F月における曜日2(F)
E曜日の名前Tuesday(EEEEEEE); Tue(EEE);
u
曜日の番号(1:月曜、・・・7:日曜)
1(u)
a午前/午後PM(a)
H一日における時(0 - 23)00(HH)
k一日における時(1 - 24)24(kk)
K午前/午後の時(0 - 11)00(KK)
h午前/午後の時(1 - 12)12(hh)
m30(mm)
s55(ss)
Sミリ秒978(SSS)
z一般的なタイムゾーンPacific Standard Time; PST; GMT-08:00

記述するパターン例については以下のとおりです。

パターン表示例
"yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ‘’yy”Wed, Jul 4, '01
"h:mm a"12:08 PM

日付パターンは、大文字と小文字が明確に区別されていますので、指定時には注意しましょう。なおオラクルの公式サイトには、日付パターンの詳細が記載されています。
https://docs.oracle.com/javase/jp/8/docs/api/java/text/SimpleDateFormat.html

yyyy/MM/ddのフォーマットで設定する方法

以下に“yyyy/MM/dd”の日付パターンでフォーマットを設定する方法を記述します。

実行結果:

このサンプルコードでは、SimpleDateFormatクラスを使用して、引数に“yyyy/MM/dd”の日付パターンでフォーマットを指定しています。

そして、SimpleDateFormatクラスの日付パターンを返すformatメソッドを使用しています。引数にはCalendarクラスのgetTimeメソッドを指定して現在の日時を取得しています。

他の日付フォーマットに変更する方法

日付のフォーマットを変更する場合は、SimpleDateFormatクラスのapplyPatternメソッドを使用します。そしてSimpleDateFormatクラスのインスタンス同様、引数にフォーマットパターンを指定します。

以下に日付フォーマットを変更する方法を記述します。

実行結果:

Calendarクラスのフォーマットについては、以下の記事でも詳しく解説しています!

【Java入門】Calendarの日付フォーマットを指定する(format)
更新日 : 2017年10月13日

 

Date型とString型の相互変換

Date型で処理をしてString型に変換したり、また逆にString型の日付データからDate型に変更して処理を行う場合もあります。Date型をString型に変換する方法やString型をDate型に変更する方法についてみていきましょう!

Date型をString型に変換する

Date型をString型に変換するためには、StringクラスのvalueOfメソッドを指定して、引数に日付型を指定します。

以下にDate型をString型に変換する方法を記述します。

実行結果:

String型をDate型に変換する


String型の日付をDate型に変換するには、SimpleDateFormatクラスのparseメソッドを使用します。

実行結果:

SimpleDateFormatクラスのparseメソッドを使うにはthrows句を使ってParseExceptionなどに例外を投げるか、try-catch構文で例外処理を行う必要がありますので注意しましょう。なおStringのさまざまな型変換については、以下の記事で詳しく解説しています!

【Java】String型(文字列)の変換方法まとめ(long、booleanへ変換)
更新日 : 2017年12月20日

日付パターンをチェックする方法

SimpleDateFormatクラスは、日付パターンを存在しないパターンなどに設定するとIllegalArgumentExceptionの例外が発生します。しかし、日付設定時に存在しない日付を設定しても例外は発生しません。

そのため、設定した日付が正しいかチェックするには、日付を設定する前にSimpleDateFormatクラスのsetLenientメソッドを使用します。setLenientメソッドの引数にはfalseを設定する必要があります。

以下に設定した日付をチェックする方法を記述します。

実行結果:

このサンプルコードでは存在しない日付”2017/4/35”を設定しました。事前にSimpleDateFormatクラスのsetLenientメソッドfalseを指定しておけば、日付設定時に日付の妥当性をチェックしてくれます。

Date型についてもっと詳しく知りたい方へ

Dateクラスのさまざまな使い方については以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】Dateクラスで日付を扱う方法をわかりやすく解説!
更新日 : 2018年11月27日

まとめ

ここでは、日付のフォーマット指定について基本的な方法やString型に変換する方法、日付のチェック方法などを説明しました。日付のフォーマットはさまざまなパターンで出力することができますので、この機会に覚えておきましょう!

もし日付のフォーマットを指定する方法を忘れてしまったら、この記事を思い出してくださいね!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2
LINEで送る
Pocket

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説