使用Kotlin将本地日期时间转换为日期

n53p2ov0  于 2023-02-13  发布在  Kotlin
关注(0)|答案(1)|浏览(393)

我有一个java.time.LocalDateTime,我想将其转换为java.util.Date

val myLocalDateTime = LocalDateTime.now().plusDays(5)

我想在Kotlin中把LocalDateTime.now().plusDays(5)转换成java.util.Date
我该怎么做?

hfyxw5xn

hfyxw5xn1#

要使LocalDateTime可转换为java.util.Date,您需要添加强制信息...
在尝试之前,请考虑一下是否可以使用Instant.now(),因为传统兼容性方法需要Instant s作为参数:

fun main() {
    // get "now" as Instant
    val now = Instant.now()
    // print the java.util.Date created from the Instant
    println(Date.from(now))
    // use the Instant plus 5 days to create another date
    val date = Date.from(now.plus(5, ChronoUnit.DAYS))
    // create a formatter for the Date
    val formatter = SimpleDateFormat("yyyy-MM-dd")
    // and print it using the formatter
    println(formatter.format(date))
}

输出(刚才在我的中欧机器上):

Thu Feb 09 15:31:06 CET 2023
2023-02-14

如果你真的需要使用一个LocalDateTime,它没有区域或偏移量,你将不得不添加一个,转换结果(一个ZonedDateTime或一个OffsetDateTimetoInstant()和创建Date s from那些...
如果只涉及日期(年、月、日)而不涉及时间,那么可以简单地使用java.time.LocalDate

fun main() {
    // get "today" as LocalDate
    val today = LocalDate.now()
    // print it using toString() implicitly
    println(today)
    // add five days
    val fiveDaysLater = today.plusDays(5)
    // and print it formatted by a prebuilt formatter
    println(fiveDaysLater.format(DateTimeFormatter.ISO_LOCAL_DATE))
}

输出:

2023-02-10
2023-02-15

相关问题