プログラマー初心者blog

当ブログにようこそ!!!

【Javasilver】難題学習(DateTimeFormatterクラス)

皆さんこんばんは!

本日はかなり暑かったですね^^;

熱中症や脱水症状には気をつけてくださいね。

それでは昨日の復習です。

LocalDateクラスやLocalDateTimeクラスで使用する

parseメソッドではどんな文字列にするかを指定するフォーマッターを

引数に受け取るものでした。

使用例:LocalDate.parse("2021-01-01",DateTimeFormatter.ISO_DATE)

ここで使用するDateTimeFormatterクラスについて本日学習していきます。

ofPatternメソッド

ofPatternメソッドを使用して任意のデータに変えることができます

LocalDate.parse("2021-01-01",DateTimeFormatter.ofPattern("yyyy/MM/dd");

とすることで2021-01-01という文字列

2021/01/01という形に変換することができます。

定数

先程のofPatternメソッドで自ら作成した("yyyy/MM/dd")と毎回定義するのは大変です。変わりにDateTimeFormatterではパターン文字の書式を毎回作らなくてもいいように

定数が定義されています。それの定数を紹介していこうと思います。

代表的な定数(JavaSilver)              

・BASIC_ISO_DATE    例:20210101

・ISO_ZONED_DATE_TIME  例:2021-01-01 T00:00:00+09:00[Asia/Tokyo]

・ISO_INSTANT           例:2021-01-01 T01:00:00Z

・ISO_DATE_TIME      例:2021-01-01 T00:00:00

・DATE_TIME                      例:06:00:00.123

など複数あります。

BASIC_ISO_DATEは日付の区切り記号がない年月日を表す書式になっています。

ISO_ZONE_TIME、ISO_INSTANTはゾーン付きで時刻を表したいときに使用できます。

ISO_DATE_TIMEは年月日に追加して時刻を表すことができ、

DATE_TIMEは時刻を表す書式となっています

これらの使用方法は、先程紹介した("yyyy/MM/dd")などの箇所に

DatetimeFormatter.ISO_DATE_TIMEなどの書式で入れると

自動的に変換してくれます。

しかし、年月日までしか文字列として用意していないのに

時刻までを指定するものを定義すると例外がスローされるので

形を合わせるように工夫していきましょう。

 

それでは、みなさん金曜日頑張りましょう!!

(つ∀-)オヤスミー