Overview
Javaにおける日時と時刻とタイムスタンプの扱いについてまとめる.
まず大事なことは, Javaの時刻APIではJava7以前とJava8以降の2種類があること. そのためネットで情報を収集するとき, その記事の投稿日時や内容でAPIを見分けることが必要.
慣例的に, Java7以前をJoda-Time API, Java8以降をDate Time APIということがおおい.
Java: Joda-Time API
Java7以前のデファクトスタンダード.
- java.util.Date
- java.text.SimpleDateFormatter
- java.util.Calendar
Java: Date Time API
Java8以降のデファクトスタンダード.
- java.time.Instant
- java.time.LocalTime
- java.time.ZonedDateTime
java.time.Instant
Unix timeを扱うクラス.
Java Date/Time Topics
JavaのDate/Time新旧比較のトピック
なんか複雑な歴史的経緯の整理.
Java InstantはEpochSecondクラスとかの名前のほうがわかりやすい
Java Instantは内部ではフィールドに秒とナノ秒を保持しているにすぎないので, 単一の時点というのは後付の説明のよう.
EpochSecondクラスという名前とかのほうがいい.