【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)
更新日 : 2019年7月29日

 

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(文字列)を変換する方法まとめ(short,int,long等に変換)
更新日 : 2019年6月6日

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

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

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

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

実行結果:

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

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

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

【Java】Dateクラスで日付を扱う方法を5つのパターン別に解説
更新日 : 2019年6月14日

まとめ

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

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

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

中沢 丈

中沢 丈

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

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

おすすめコンテンツ

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

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