在Java(或Kotlin)中,我需要使用时区将日期和时间从yyyy-mm-dd和hh:mm:ss格式转换为LocalDate-LocalTime

在Java(或Kotlin)中,我需要使用时区将日期和时间从yyyy-mm-dd和hh:mm:ss格式转换为LocalDate-LocalTime,java,date,datetime,kotlin,timezone,Java,Date,Datetime,Kotlin,Timezone,我需要将来自JSON文件的字符串转换为使用时区作为字符串的LocalDate和LocalTime格式。我仅使用LocalDate.ofInstant(Instant,ZoneId)方法将日期转换为LocalDate,但它需要时间和日期格式,例如2021-05-21T10:17:55.539729Z,但我只收到的字符串格式如下所示(yyyy-mm-dd和hh:mm:ss) 您只需将每个子组件转换为相应的java.time对象,然后将所有组件组合成一个ZoneDateTime val jsonDat

我需要将来自JSON文件的字符串转换为使用时区作为字符串的LocalDate和LocalTime格式。我仅使用LocalDate.ofInstant(Instant,ZoneId)方法将日期转换为LocalDate,但它需要时间和日期格式,例如
2021-05-21T10:17:55.539729Z
,但我只收到的字符串格式如下所示(yyyy-mm-dd和hh:mm:ss)


您只需将每个子组件转换为相应的
java.time
对象,然后将所有组件组合成一个
ZoneDateTime

val jsonData=//您解析的json
val zone=ZoneId.of(jsonData.timeZone)
val time=LocalTime.parse(jsonData.time)
val date=LocalDate.parse(jsonData.date)
val zonedDateTime=zonedDateTime.of(日期、时间、区域)
println(ZoneDateTime)//2021-02-25T13:00-05:00[美国/纽约]

您只需将每个子组件转换为相应的
java.time
对象,然后将所有组件组合成一个
ZoneDateTime

val jsonData=//您解析的json
val zone=ZoneId.of(jsonData.timeZone)
val time=LocalTime.parse(jsonData.time)
val date=LocalDate.parse(jsonData.date)
val zonedDateTime=zonedDateTime.of(日期、时间、区域)
println(ZoneDateTime)//2021-02-25T13:00-05:00[美国/纽约]
{
"timeZone": "America/New_York",
"date": "2021-02-25",
"time": "13:00:00"
}