基本数据格式转换为 java

Basic data format convert in java

我有一个 JSP,它有数据选择器和 dd-MM-yyyy 格式的输出 returns 数据字符串。

现在我希望输出完全符合日期时间格式 -> 2019-01-01T01:01:59Z。

我猜这是从简单的日期格式到日期时间格式。我试过它的抛出错误。 这是我的代码。 formatedate2 失败。

DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
    DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MM-yyy", Locale.ENGLISH);
    LocalDate date = LocalDate.parse("2018-04-10T04:00:00.000Z", inputFormatter);
    String formattedDate = outputFormatter.format(date);
    LocalDate date2 = LocalDate.parse("12-10-2019", outputFormatter);
    String formattedDate2 = inputFormatter.format(date2);


    System.out.println(formattedDate2); 

有人可以指导我完成这个任务吗?感谢您的大力帮助

这需要您的 LocalDate 并使用 LocalTime.MIN 将其转换为 LocalDateTime,即 00:00。然后,我们使用 atZone 将 LocalDateTime 转换为 ZonedDateTime,ZoneId 为 UTC。然后我们使用 format() 将该 ZonedDateTime 格式化为您想要的格式。我希望这有帮助。

        LocalDate date = LocalDate.parse("2018-04-10");

        LocalDateTime localDateTime = date.atStartOfDay();

        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("UTC"));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")));

输出:2018-04-10T00:00:00.000Z