import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        var dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH[:mm[:ss[.SSS]]]", Locale.ENGLISH);
        Stream.of(
                "2024-01-17T20",
                "2024-01-17T20:10",
                "2024-01-17T20:10:05",
                "2024-01-17T20:10:05.123"
        ).forEach(s -> {
            var ldt = LocalDateTime.parse(s, dtf);
            var millis = ldt.atZone(ZoneId.systemDefault())
                            .toInstant()
                            .toEpochMilli();
            System.out.println(ldt + " -> " + millis);
        });
    }
}