#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿