import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class MembuatLocalDateTime {
    public static void main(String[] args) {
        // Jalur 1: isi semua komponen langsung.
        LocalDateTime rapat = LocalDateTime.of(2026, 1, 15, 8, 0);

        // Jalur 2: gabungkan LocalDate + LocalTime yang sudah ada.
        LocalDate tanggal = LocalDate.of(2026, 1, 15);
        LocalTime jam = LocalTime.of(10, 30);
        LocalDateTime kelas = LocalDateTime.of(tanggal, jam);

        // Jalur 3: rakit dari salah satu sisi.
        LocalDateTime lelang = jam.atDate(LocalDate.of(2026, 2, 20));
        LocalDateTime konser = tanggal.atTime(19, 45);

        // Jalur 4: parse format ISO-8601 bawaan.
        LocalDateTime dariTeks = LocalDateTime.parse("2026-01-15T08:30");

        System.out.println("rapat     : " + rapat);
        System.out.println("kelas     : " + kelas);
        System.out.println("lelang    : " + lelang);
        System.out.println("konser    : " + konser);
        System.out.println("dariTeks  : " + dariTeks);

        // Pecah kembali menjadi komponennya.
        System.out.println("toLocalDate() : " + rapat.toLocalDate());
        System.out.println("toLocalTime() : " + rapat.toLocalTime());

        // Konstanta formatter ISO bawaan mencetak detik secara eksplisit.
        System.out.println("ISO_LOCAL_DATE_TIME : " + rapat.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
    }
}
