Calendarクラスの日時を日時文字列に変換
Calendarクラスの日時をタイムゾーンを考慮した日時文字列に変換する方法を紹介します。
[Kotlin]に戻る
[記事の先頭]
概要
JDK1.8やAndroid API 26から日時を扱うクラスが新しく使えるようになりましたが、 Android API 26 以前にも対応させたい場合など、まだCalendarクラスを使うことが多いと思います。
SimpleDataFormatを使用して日時文字列への変換を行いますが、 ポイントはSimpleDataインスタンスにCalendarインスタンスのタイムゾーンを設定することです。
[記事の先頭]
標準CalendarクラスにtoString()を追加する例
CalendarExp.kt ファイル
import java.text.SimpleDateFormat
import java.util.*
fun Calendar.toString(pattern: String): String {
val format = SimpleDateFormat(pattern)
format.timeZone = timeZone
return format.format(time)
}
[記事の先頭]
使い方の例
システムのタイムゾーンを使う場合
val calendar = Calendar.getInstance()
val text = calendar.toString("yyyy/MM/dd HH:mm:ss.SSS")
println("$text (${calendar.timeZone.displayName})")
// => 2022/01/23 12:34:56.789 (日本標準時)グリニッジ標準時のタイムゾーンを使う場合
val calendar = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("Europe/London")))
val text = calendar.toString("yyyy/MM/dd HH:mm:ss.SSS")
println("$text (${calendar.timeZone.displayName})")
// => 2022/01/23 03:34:56.789 (グリニッジ標準時)
[記事の先頭]
関連記事
[記事の先頭]
[Kotlin]に戻る
