#18 Javaで学ぶ日付と時刻の扱いの基本

Javaの日付操作は、比較的新しいバージョンで整備されたjava.timeパッケージを使うのが現在の標準です。この記事では、Javaにおける日付の基本的な扱い方と、実務でよく使う操作を解説します。

LocalDateTimeを使う

import java.time.LocalDateTime;

LocalDateTime now = LocalDateTime.now();
System.out.println(now);

時刻を含めず日付だけを扱いたい場合はLocalDate、時刻だけを扱いたい場合はLocalTimeというクラスもあります。

日付を文字列にする

import java.time.format.DateTimeFormatter;

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
System.out.println(now.format(formatter));

文字列から日付に変換する

逆に、文字列から日付データを作りたい場合はparseを使います。

import java.time.LocalDate;

LocalDate date = LocalDate.parse("2026-08-01");
System.out.println(date.getDayOfWeek()); // FRIDAY

日付を計算する

LocalDateTime threeDaysLater = now.plusDays(3);
LocalDateTime oneMonthAgo = now.minusMonths(1);

2つの日付の差を求めたい場合は、java.time.Period(年月日単位)やjava.time.Duration(時分秒単位)を使います。

import java.time.Period;

Period period = Period.between(date, LocalDate.now());
System.out.println(period.getDays());

Javaならではの注意点

Javaには、今回紹介したjava.timeより前に存在したDateやCalendarという、扱いにくいことで知られる古いクラスもあります。現在ではjava.timeパッケージの使用が強く推奨されているため、古い教材でDateクラスの使い方を見かけても、新しいコードではLocalDateTimeを使うようにしましょう。また、java.time系のクラスはイミュータブル(作成後に内容を変更できない)という特徴があり、plusDaysのような操作は元のオブジェクトを書き換えるのではなく、新しいオブジェクトを返す点にも注意が必要です。

まとめ

Javaの日付操作はjava.timeパッケージのLocalDateTime・LocalDateが基本です。古いDateクラスとの違いや、イミュータブルである点を意識しておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本