LoginSignup
14
15

More than 5 years have passed since last update.

JavaのDate and Time APIを整理する

Posted at

Java 8で追加されたDate and Time APIについてまとめる。

参考URL

ここが大変だよJava 8 Date-Time API
必修! Date and Time API──Java SE 8の新日時APIの基本を学ぶ
詳解 Java SE 8 第24回 Date and Time APIの日付/時刻クラス

java.util.Dateやjava.util.Calendarの問題点

  • 日時の計算機能が乏しい
  • スレッドセーフではない
  • Mutableなクラスであるため値が変更可能である
  • 月が0オリジン
  • 日付のみ、時刻のみを扱えない

新たに追加されたクラス

ISO 8601ベースのクラス

タイムゾーンを考慮しない

単純に年や月などの日付、時や分などの時刻で構成されるクラス。タイムゾーンや地域ごとの時差についての情報は持っていない。
* LocalDateTime
* LocalDate
* LocalTime

タイムゾーンが設定されたクラス

日付や時刻の情報に加えてタイムゾーンの情報を持っているクラス。地域によってサマータイムを導入しているなどの情報も持つ。
* ZonedDateTime

UTCからの時差が設定されたクラス

日付や時刻の情報に加えてUTCからの時差情報を持っているクラス。地域の情報を持っていないためサマータイムなどは考慮されない。
* OffsetDateTime
* OffsetTime

各クラスの変換マップDate and Time API.png

エポックからの経過時間を扱うクラス

期間を表すクラス

秒とナノ秒を基に期間を表すクラス

年月日を基に期間を表すクラス

14
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
15