我如何使用 DateTimeFormatter 或 Java 中的任何其他库将“2019-07-14T18:30:00.000Z”转换为“2021-09-26 04:30:00 PM”

How do i convert "2019-07-14T18:30:00.000Z" to "2021-09-26 04:30:00 PM" using DateTimeFormatter or any other library in Java

我不确定这是否已经得到解答,但是谁能告诉我如何将“2019-07-14T18:30:00.000Z”转换为“2019-07-14”04:30:00 PM" 使用 DateTimeFormatter 或 Java 中的任何其他库?基本上输出日期时间应该有 AM/PM 格式的时间。

试试这个

String date = "2019-07-14T18:30:00.000Z";
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
Date parsedDate = inputFormat.parse(date);
String formattedDate = outputFormat.format(parsedDate);
System.out.println(formattedDate);

通过使用ZonedDateTime,您可以解析输入的UTC格式字符串,然后使用LocalDateTimeDateTimeFormatter格式化输出字符串。但我不确定你在输入和输出字符串中有天数、月份和时间差异的依据

String date = "2019-07-14T18:30:00.000Z";

ZonedDateTime dateTime = ZonedDateTime.parse(date);

String res = dateTime.withZoneSameInstant(ZoneId.of("//desired zone id")).format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss a"));