Java LocalDateTime remove the milliseconds from UTC timezone



I am trying to truncate milliseconds from a UTC time zone. I have the code below where I am able to remove milliseconds but I still get the Z at the end.

      OffsetDateTime now = OffsetDateTime.now(ZoneOffset.UTC );

      OffsetDateTime eventDateTime=now.minus(4, ChronoUnit.MINUTES);

      System.out.println("====Event date Time before truncate===");
      System.out.println(eventDateTime);
      
      System.out.println("====Event date Time after truncate===");
      System.out.println(eventDateTime.truncatedTo(ChronoUnit.SECONDS));

This outputs the following:

====Event date Time before truncate===

2021-03-09T20:46:24.081Z

====Event date Time After truncate===

2021-03-09T20:46:24Z

Answer

The Z is the timezone information. You can convert the OffsetDateTime instance to a LocalDateTime like this:

eventDateTime.truncatedTo(ChronoUnit.SECONDS).toLocalDateTime()


Source: stackoverflow