将OffSetDateTime字符串转换为ZonedDateTime Java

问题描述 投票:1回答:1

我有一个模式"yyyy-MM-dd'T'HH:mm:ssZ"的字符串,我想用Java转换为ZonedDateTime格式。

输入字符串示例:"2019-11-23T10:32:15+12:24"输出:ZonedDateTime

编辑:我已经尝试过了,但是不起作用。

   ZonedDateTime convertToZonedDateTime(final String source) {
    final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = null;
    try {
        date = dateFormat.parse(source);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return ZonedDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

}

我有适用于字符串“ 2018-04-05 19:58:55”的解决方案,会产生输出2018-04-05T19:58:55 + 05:30 [Asia / Kolkata]但当我更改函数中的模式时到“ yyyy-MM-dd'T'HH:mm:ssZ”,并将字符串输入到2019-11-23T10:32:15 + 12:24,由于ParseException:无法解析数据而无法使用。

我需要API的ZonedDateTime格式,期望该格式的输入时间。

java datetime jodatime datetimeoffset zoneddatetime
1个回答
1
投票

您可以将输入的日期时间字符串解析为OffsetDateTime,然后将其转换为ZonedDateTime

String inputDate = "2019-11-23T10:32:15+12:24";

OffsetDateTime offset = OffsetDateTime.parse(inputDate);

ZonedDateTime dateTime = offset.toZonedDateTime();
© www.soinside.com 2019 - 2024. All rights reserved.