import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Main {
	public static void main(String[] args) {
		LocalTime time = LocalTime.of(10, 20);
		ZoneId zoneId = ZoneId.of("Europe/London");

		System.out.println(ZonedDateTime.of(LocalDate.of(2021, Month.MARCH, 27), time, zoneId));
		System.out.println(ZonedDateTime.of(LocalDate.of(2021, Month.MARCH, 28), time, zoneId));

		// ############# Obtaining timezone offset from ZoneId #############
		LocalDateTime ldt = LocalDateTime.of(LocalDate.of(2021, Month.MARCH, 28), time);

		System.out.println(ZonedDateTime.of(ldt, zoneId).getOffset());
		// Alternatively
		System.out.println(zoneId.getRules().getOffset(ldt));
	}
}