【Java】DateTimeクラスで日付を扱う方法を解説

Javaで日付を扱うにはどうすればいいの?
DateTimeクラスの使い方を詳しく知りたい

Javaには日付を簡単に扱うことができるDateTimeクラスがあります。

ここではDataTimeクラスについて、使い方の基本から日付フォーマットを指定する方法、Java8で追加されたDateTimeクラスの使い方などについて詳しく解説していきます。

JavaのDateTimeとは

DateTimeクラスは、日付を扱うときによく使用するCalendarクラスを、より扱いやすくしたライブラリです。

DateTimeクラスを使用するためには「joda-time-X.X」のパッケージをインストールする必要があります。
(2018時点の最新版は「joda-time-2.2」になります)

DateTimeクラスのパッケージ「joda-time-X.X」は、以下のサイトからダウンロードできます。
http://www.java2s.com/Code/Jar/j/Downloadjodatime22jar.htm

DateTimeクラスは、以下のパッケージの宣言が必要です。

DateTimeの使い方

初期化する方法

DateTime型を初期化するには、オブジェクト生成時にインスタンスにさまざまな引数を指定することが可能です。

以下にDateTimeクラスを初期化する基本的な方法を記述します。

DateTimeクラスは引数無しで設定すると現在の日時を取得することができますし、年月日時分秒を詳細に設定する方法、Dateクラスを指定する方法などがあります。

基本的な使い方

DateTimeクラスは、以下のようにメソッドを使用することで、年月日が簡単に取得することができます。

日付のフォーマットを指定する方法

DateTimeクラスは、日付のフォーマットもDateTimeFormatクラスのforPatternメソッドを使用すれば、簡単に設定することができます。

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

サンプルではDateTimeクラスのオブジェクトに対して、DateTimeFormatクラスのforPatternメソッドを使用して、日付パターンを設定し、parseDateTimeメソッドで日時を指定しています。

Java8で追加されたDateTimeクラス

Java8で追加された日時APIには、便利な日付機能を兼ね備えたクラスがいくつか追加されました。
ここでは、LocalDateTimeクラスとZonedDateTimeクラスを紹介します。

java.time.LocalDateTime

LocalDateTimeクラスは、タイムゾーンのない日時を設定することができます。

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

以下にLocalDateTimeクラスの基本的な使い方を記述します。

java.time.ZonedDateTime

ZonedDateTimeクラスは、タイムゾーンのある日時を設定することができます。

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

以下にZonedDateTimeクラスの基本的な使い方を記述します。

まとめ

ここでは、DateTimeクラスについて、初期化方法や基本的な使い方、Java8で追加されたjava.timeパッケージのDateTimeクラスについても紹介しました。

Javaでは日付を扱うクラスが複数存在しますので、それぞれ用途や使い方をしっかりと覚えておきましょう。

もし、DateTimeクラスの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

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

cta_under_bnr

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

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

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

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

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

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

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