我有一个模式"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格式,期望该格式的输入时间。
您可以将输入的日期时间字符串解析为OffsetDateTime,然后将其转换为ZonedDateTime
String inputDate = "2019-11-23T10:32:15+12:24";
OffsetDateTime offset = OffsetDateTime.parse(inputDate);
ZonedDateTime dateTime = offset.toZonedDateTime();