kotlin 日時を指定した値に変更する

kotlinで、日時を指定した値に変更する手順を記述してます。「withYear」などを使用します。存在しない日付を選択するとエラーが発生します。
環境
- OS windows11 home
- java 19.0.1
- kotlin 1.7.20-release-201
手順
日時を指定した値に変更するには、以下のメソッドで可能です。
メソッド | 意味 |
---|---|
dt.withYear(値) | 指定した値に年を変更 |
dt.withMonth( | 指定した値に月を変更 |
dt.withDayOfMonth( | 指定した値に日を変更 |
dt.withHour( | 指定した値に時間を変更 |
dt.withMinute( | 指定した値に分を変更 |
dt.withSecond( | 指定した値に秒を変更 |
実際に、変更してみます。見やすいようにフォーマットを指定して出力してます。
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main(){
val d = LocalDateTime.now()
println(d) // 2022-04-21T12:05:05.750125700
var result = d.withYear(3000).format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))
println(result) // 3000/04/21 12:21:54
result = d.withMonth(12).format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))
println(result) // 2022/12/21 12:21:54
result = d.withDayOfMonth(15).format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))
println(result) // 2022/04/15 12:21:54
}
それぞれ現在日時から指定した値に変更されていることが確認できます。
存在しない日付を指定するとエラーとなります。
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main(){
val d = LocalDateTime.now()
println(d)
var result = d.withMonth(13).format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))
println(result)
// Exception in thread "main" java.time.DateTimeException:
// Invalid value for MonthOfYear (valid values 1 - 12): 13
}
-
前の記事
GAS 指定した範囲を選択状態にする 2023.08.24
-
次の記事
MariaDB 区切り文字で列を抽出する 2023.08.24
コメントを書く