Android(Kotlin)でTimeZoneを考慮した日付の扱い方
ZonedDateTime を使えばよい
タイムゾーン情報は ZoneId を使う
// JSTで現在時間を導く ZonedDateTime.now(ZoneId.of("Asia/Tokyo")) // 文字列からZonedDateTimeへ変換 date = "2021-01-01T00:00:00+09:00[Asia/Tokyo]" ZonedDateTime.parse(date) // 任意の時間に変える ZonedDateTime.now().withHour(22).withMinute(0).withSecond(0) // 任意の日付フォーマットのStringに変える ZonedDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME)
日付フォーマットは DateTimeFormatter のところに色々書いてある
ある日時とある日時の差分を求めるには ChronoUnit を使う
// 経過秒数を出すなら ChronoUnit.MINUTES.between(from, to) // 経過年数を出すなら ChronoUnit.YEARS.between(from, to)