📅  最后修改于: 2023-12-03 15:25:03.022000             🧑  作者: Mango
在 Kotlin 中将字符串转换为日期主要涉及到以下步骤:
LocalDate
、LocalDateTime
、ZonedDateTime
等日期类型在 Kotlin 中,可以使用 LocalDate.parse()
、LocalDateTime.parse()
或 ZonedDateTime.parse()
方法将字符串解析为相应的日期类型。例如,以下代码将字符串转换为 LocalDate
类型:
val dateStr = "2022-01-01"
val date = LocalDate.parse(dateStr)
可选参数 DateTimeFormatter
可用于解析特定格式的日期字符串。例如,如果要解析 yyyyMMdd
格式的日期字符串,则可以使用以下代码:
val dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd")
val dateStr = "20220101"
val date = LocalDate.parse(dateStr, dateFormatter)
同样,以下代码将字符串转换为 ZonedDateTime
类型:
val dateTimeStr = "2022-01-01T12:00:00+08:00[Asia/Shanghai]"
val dateTime = ZonedDateTime.parse(dateTimeStr)
默认情况下,LocalDate.parse()
、LocalDateTime.parse()
和 ZonedDateTime.parse()
方法可以解析各种格式的日期字符串,但如果日期字符串不符合预期格式,则可能会抛出 DateTimeParseException
异常。 在这种情况下,可以使用 DateTimeFormatter
定义日期字符串的格式以进行解析。
例如,以下代码定义了 yyyyMMdd
格式的日期字符串:
val dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd")
在解析日期字符串时,使用 LocalDate.parse()
、LocalDateTime.parse()
或 ZonedDateTime.parse()
方法的可选参数 DateTimeFormatter
。
val dateStr = "20220101"
val date = LocalDate.parse(dateStr, dateFormatter)
在 Kotlin 中,可以使用 toLocalDate()
、toLocalDateTime()
或 toZonedDateTime()
方法将日期类型转换为其他日期类型。例如,以下代码将 LocalDate
转换为 LocalDateTime
:
val currentDate = LocalDate.now()
val currentDateTime = currentDate.atStartOfDay()
同样,以下代码将 LocalDateTime
转换为 ZonedDateTime
:
val currentDateTime = LocalDateTime.now()
val currentTimeZone = ZoneId.of("America/New_York")
val currentDateTimeWithTimeZone = currentDateTime.atZone(currentTimeZone)
以上是将字符串转换为日期类型在 Kotlin 中的基本步骤,详细的示例代码请见 Kotlin String to Date Conversion: LocalDate, LocalDateTime, ZonedDateTime。