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クラスという名前とかのほうがいい.

【Java】InstantクラスとLocalDateTimeクラスの違いとInstantクラス、エポック秒について