我有字符串,我想使用相同的格式转换为 toLocalDateTime,但是当我尝试相同的格式“yyyy-MM-dd HH:mm:ss.S Z”时,它无法转换,因为它没有解析时区偏移量:
LocalDateTime.parse("2024-08-19 00:20:04.0 +2:00",java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S Z"))
它给出以下错误: LocalDateTime.parse("2024-08-19 00:20:04.0 +2:00",java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S Z")) java.time.format.DateTimeParseException:无法在索引 22 处解析文本“2024-08-19 00:20:04.0 +2:00” 在 java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2056) 在 java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1958) 在 java.base/java.time.LocalDateTime.parse(LocalDateTime.java:494) ... 30 已删除
我尝试用 z 替换 Z 但同样的问题,我也尝试用仍然相同的错误替换 Z 有一种方法可以将包含时区偏移的字符串(如“+2:00”)转换为以下格式的日期时间: “2024-08-19 00:20:04.0 +2:00”
试试这个:
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.LocalDateTime
val dateTimeString = "2024-08-19 00:20:04.0 +2:00"
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S XXX")
try {
val zonedDateTime = ZonedDateTime.parse(dateTimeString, formatter)
val localDateTime = zonedDateTime.toLocalDateTime
println(localDateTime)
} catch {
case e: Exception => e.printStackTrace()
}