追記
今は以下を使うのがよいと思います。
https://github.com/JakeWharton/ThreeTenABP
2年程前にAndroidを始めたばかりの頃、日付時刻を扱うときはandroid.text.format.Time
を使えみたいな話を聞いて日付時刻処理には極力Time
クラスを使うようにしていたのですが、数ヶ月前に@deprecated
になってしまっていたので代替となるものを探していました。
公式ドキュメントには代わりにGregorianCalendar
を使えと書いてあったけれど、今更感があったのでJava8のDate and Time APIのバックポートライブラリであるthreetenbpを使うことにしました。(何かの機会でJava8書くときに勉強しなくていいし)
2015/06/04追記
正式にJava8サポートされる可能性が出てきたのでちょうど良いかも
https://android-review.googlesource.com/#/c/150214/
導入
依存関係を追加
compile 'org.threeten:threetenbp:1.2'
proguardの設定を追加
-dontwarn java.util.spi.LocaleServiceProvider
-dontwarn sun.util.calendar.*
-keep class org.threeten.bp.zone.*
よく使うクラス
org.threeten.bp.LocalDate
org.threeten.bp.LocalDateTime
org.threeten.bp.ZonedDate
org.threeten.bp.ZonedDateTime
org.threeten.bp.Instant
簡単な用途なら
- 日付のみを扱うか、日付+時刻を扱うか
- タイムゾーンを含めるか
で使うクラスを決めて、
- エポックタイムを扱う場合は
Instant
を使う
と覚えておけばなんとかなると思います。