import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.format.DateTimeFormatter;
import java.time.*;

// The main method must be in a class named "Main".
class Main {
    public static final ZoneId UTC_ZONE = ZoneId.of("UTC");
    public static final String ISO_8601_DATE_TIME_WITH_MS_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
    
    public static void main(String[] args) {
        var local = LocalDateTime.parse("14/08/2023 08:23:45", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")).toLocalDate();
        var format = Main.formatUtcIsoDateTimeString(local);
        System.out.println(format);
    }

    public static String formatUtcIsoDateTimeString(LocalDate date) {
        if (date == null) {
            return null;
        }

        return formatIsoDateTimeString(date.atStartOfDay().atOffset(ZoneOffset.UTC), UTC_ZONE, ISO_8601_DATE_TIME_WITH_MS_FORMAT);
    }

    public static String formatIsoDateTimeString(OffsetDateTime isoDateTime, ZoneId atZone, String format) {
        if (isoDateTime == null) {
            return null;
        }

        if (atZone != null) {
            return isoDateTime.atZoneSameInstant(atZone).format(DateTimeFormatter.ofPattern(format));
        }

        return DateTimeFormatter.ofPattern(format).format(isoDateTime);
    }
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: