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

public class Main {
	public static void main(String[] args) {
		ZoneId zoneId = ZoneId.of("America/Toronto");
		LocalDateTime ldtDstOn = LocalDateTime.of(LocalDate.of(2018, Month.OCTOBER, 22), LocalTime.MIN);
		LocalDateTime ldtDstOff = LocalDateTime.of(LocalDate.of(2018, Month.NOVEMBER, 22), LocalTime.MIN);

		// Using ZonedDateTime
		ZoneOffset offsetDstOn = ZonedDateTime.of(ldtDstOn, zoneId).getOffset();

		// Alternatively, using ZoneId#getRules
		ZoneOffset offsetDstOff = zoneId.getRules().getOffset(ldtDstOff);

		System.out.println(offsetDstOn);
		System.out.println(offsetDstOff);
	}
}