KotlinでのDateやTimeの扱い
驚いたことにKotlinの標準ライブラリにはDateやTimeを扱うためのものがない。どうするか?というとJavaのAPIを利用するのである。
そこで注意点がある。
JavaのVersionとAndroid Versionの関係
DateやTimeのJava APIはJava 8以前と以降とで異なる。一方、AndroidのAPI Level 26以降でないとJava 8を使えない。ただしそれらを実装したデバイスでもJava 7以前のDateやTimeを使える。
最近はAndroid 9をターゲットにしないとGoogle Playに乗せてくれないらしいが、Minimumは26よりもっと低いものを設定するのが普通だろう。
したがってJava 7用のDateやTimeをインポートするケースが大半と思われる。
具体的にインポートするもの
Java 7用のDateやTimeとなると
import java.util.Date
import java.util.GregorianCalendar
import java.text.SimpleDateFormat
といったなじみのあるものになる。使い方も
val d = Date() // 現在時刻
val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm")
Log.d("LOG", sdf.format(d))
予約語がJavaのものからKotlinのものに変わっただけ。
簡単だけど、独自APIにこれらのAPIがないというのはちょっとどうかなと思う。