torutkのブログ

ソフトウェア・エンジニアのブログ

Java SE 8 のDate and Time API(JSR 310)

InfoQの記事「Java Time API,Java 8で提供」によると、JDK 8 Early AccessのBuild b75版(2013-01-31)に、JSR 310 Date and Time APIの実装が加わったとのことです。

JDK 8 Early Accessは現在ほぼ毎週更新されており、日本時間で本日現在b77版(2013-02-14)が最新です。

Javaの時刻APIには、時間(ある時刻と別な時刻との差)を扱うことに難点があります*1。以前Javaでの時間(絶対時刻、相対時刻=時間)をどう表現するかを考える - torutkの日記で「時間」の取り扱いの問題点を取り上げました。この日記(今からもう5年半前)を見返すと、JSR 310で改善とありますが、ようやくその実装がJava SEに入りました。

JDK 8のJavadoc APIが次のURLで見れますが、そこにjava.timeパッケージが確認できました。

JSR 310の具体的な解説が、昨年秋に開催された日本Javaユーザーグループ・クロスコミュニティカンファレンス2012秋のセッション資料http://www.slideshare.net/btnrouge/introduction-to-jsr-310-date-and-time-apiにあります。

JSR 310でISO 8601(日付と時刻の表記)にも対応しているのがうれしいです。

*1:月を0-11の整数で指定するなどバグの温床となる問題もあります。