繁体   English   中英

无法从 HH:mm:ss.SSS'Z' 转换为 HH:MM 格式的 Java

[英]Not able to convert from HH:mm:ss.SSS'Z' to HH:MM format Java

我正在尝试在 Java 中转换为 HH:MM 格式

这是我的代码

String date = "18:30:00.000Z";

    try {
        ZonedDateTime parsed = ZonedDateTime.parse(date);

        ZonedDateTime z = parsed.withZoneSameInstant(ZoneId.systemDefault());

        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
        System.out.println(fmt.format(z));
    } catch(Exception e) {
        e.printStackTrace();
    }

我的代码有什么问题吗

这是例外

java.time.format.DateTimeParseException: Text '18:30:00.000Z' could not be parsed at index 0

您尝试解析的字符串不是日期和时间,而只是时间。 所以ZonedDateTime类型不是在这里使用的合适类型。 使用OffsetTime代替,这是一个只保存时间(没有日期)的类。

String input = "18:30:00.000Z";
OffsetTime time = OffsetTime.parse(input);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("h:mm a");
String result = formatter.format(time);
System.out.println(result);

输出:

6:30 PM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM