import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZoneOffset;

class Main {
    public static void main(String[] args) {
        ZoneId zoneIndia = ZoneId.of("Asia/Kolkata");
        LocalDate date = LocalDate.parse("2023-04-03");

        System.out.println(date.atStartOfDay(zoneIndia)
                .withZoneSameInstant(ZoneOffset.UTC));

        System.out.println(date.atStartOfDay(zoneIndia).with(LocalTime.MAX)
                .withZoneSameInstant(ZoneOffset.UTC));

        // Or get the exlusive upper range (half-open interval for the day)
        System.out.println(date.plusDays(1).atStartOfDay(zoneIndia)
                .withZoneSameInstant(ZoneOffset.UTC));
    }
}