#18 Kotlinで学ぶ日付と時刻の扱いの基本
Kotlinの日付操作は、Javaのjava.timeパッケージをそのまま利用できます。この記事では、Kotlinにおける日付の基本的な扱い方と、実務でよく使う操作を解説します。
LocalDateTimeを使う
import java.time.LocalDateTime
val now = LocalDateTime.now()
println(now) // 2026-07-30T15:04:22.123
時刻を含めず日付だけを扱いたい場合はLocalDate、日付を含めず時刻だけを扱いたい場合はLocalTimeというクラスもあります。必要な情報だけを持つクラスを選ぶことで、意図しない情報の混入を防げます。
日付を文字列にする
import java.time.format.DateTimeFormatter
val formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日")
println(now.format(formatter)) // 2026年07月30日
文字列から日付に変換する
逆に、文字列から日付データを作りたい場合はparseを使います。
import java.time.LocalDate
val date = LocalDate.parse("2026-08-01")
println(date.dayOfWeek) // FRIDAY
dayOfWeekのように、曜日や月といった情報も自動で計算して取得できます。
日付を計算する
val threeDaysLater = now.plusDays(3)
val oneMonthAgo = now.minusMonths(1)
plusDays・minusMonthsのように、加算・減算のメソッドが単位ごとに用意されているため、「3日後」「1ヶ月前」といった計算を直感的に書けます。2つの日付の差を求めたい場合はjava.time.Periodやjava.time.Durationを使います。
Kotlinならではの注意点
KotlinにはJava向けのjava.timeをより簡潔に扱えるkotlinx-datetimeという専用のライブラリもあります。基本はJavaの機能をそのまま使えますが、マルチプラットフォーム(Kotlin Multiplatform)を意識したプロジェクトでは、Javaに依存しないkotlinx-datetimeの利用も検討されます。また、java.time系のクラスは基本的にイミュータブル(作成後に内容を変更できない)なので、plusDaysのような操作は元のオブジェクトを書き換えるのではなく、新しいオブジェクトを返す点にも注意しましょう。
まとめ
Kotlinの日付操作はJavaのjava.timeがそのまま使えます。LocalDate・LocalDateTimeを使い分け、プロジェクトに応じてkotlinx-datetimeのような専用ライブラリも視野に入れましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿