こんにちは。
文系Javaエンジニアとして、自社パッケージを持つ会社に内定をいただきました。
会社員になってからは資格も取る必要がありますよね。私もJavaSilverの勉強をしているのですが、試験範囲のLocalDateクラスが覚えられずに苦戦しています。
クラスは扱うことが少ないと、親近感がわかずになかなか覚えられませんよね。
そこで、自分の勉強の意味も含めて、今回はJavaSilverの試験に出てくるLocalDateクラスについてまとめてみたいと思います。
LocalDateクラスとは
LocalDateクラスは日付を表すクラスです。似たようなクラスとして以下の2つがあります。
- LocalTimeクラス(時間を扱う)
- LocalDateTimeクラス(日時を扱う。LocalDateとLocalTimeを併せ持つ)
まず、LocalDateクラスについてしっかり押さえておきたいのは、「このクラスは日付を扱うクラスであり、日付の文字列を扱うクラスではない」ということです。例えば、
LocalDate date = LocalDate.now(); System.out.println(date); //2020-5-22
と書くと、”2020-5-22”が出力されますよね。
これだけ見ていると、なんだか”2020-5-22”という文字列がdateに保存されているのかな、と思いがちですが、違います。
あくまで日付が保存されているのです。文字列だと認識していると、JavaSilverのテストで問題がうまく解けなかったり、混乱してしまったりしますのでご注意ください。
ポイント
LocalDateクラスは日付の文字列ではなく、日付そのものを扱うクラス
JavaSilverで覚えるべきLocalDateクラスのメソッド3つ
実は、JavaSilverではLocalDateクラスに関して覚えることは、たったの3つしかありません。
そのため、この3つを確実に押さえることが合格への近道になります。
さらに、この3つを押さえておくとLocalTimeクラスやLocalDateTimeクラスを勉強するときに役立つので、覚えてしまって損はありません。
現在の日付を取得するnowメソッド
まず初めはnowメソッドです。これは名前の通りで、現時点の日付を取得します。
使い方は以下のとおりです。
LocalDate date = LocalDate.now(); System.out.println(date); //2020-5-22
気をつける点は特にありませんが、強いて言うならnewしないことだと思います。
しかしJavaSilver試験は私達がコードを書くことはありませんので、大丈夫です。
指定した日付を取得するofメソッド
nowだけだと今日の日付しか取得できなくて不便ですよね。
そんな流れで登場するのがofメソッドです。こちらも名前の通り、後ろに記述したもの「の」日付を取得します。使い方は以下のとおりです。
LocalDate date = LocalDate.of(2011, 11, 11); System.out.println(date); //2011-11-11
文字列を日付に変更するparseメソッド
最後に、文字列を日付に変換するparseメソッドがあります。
こちらが厄介で、「文字列を日付に変える」ということが理解しにくいです。
理由は明確で、見た目からではわかりにくいためと、最初に記述したとおりLocalDateクラスを「日付の文字列を保存するクラスだ」と間違えて覚えてしまいがちなためです。
もう一度言いますが、日付と文字列は別物だと考えてください。例は以下です。
LocalDate date = LocalDate.parse(“2019-8-11”); System.out.println(date); //2019-8-11
見た目だけ見ていると、本当に何が変わったのか不明ですので気をつけてくださいね。
中身は文字列と日付で違います。dateは文字列ではなく日付型ですよ。
まとめ
JavaSilver対策でLocalDateクラスについてご紹介しました。
LocalDateクラスのnow, of, parseメソッドを押さえることができたら、次はLocalTime, LocalDateTimeクラスとどんどん増やしていき、JavaSilverの一発合格を目指して頑張りましょう!
もし「合格できるか不安かも…」と思う場合は、黒本や紫本で勉強するのがおすすめです。(私は黒本1冊で合格しました!)
どちらの本も、JavaSilverの本番試験で出てくる問題と似た問題を出題してくれるので、演習量に不安な方は使ってみてくださいね。
■黒本
徹底攻略Java SE 11 Silver問題集[1Z0-815]対応
最後までお読みいただきありがとうございました!