import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
// The main method must be in a class named "Main".
class Main {
public static void main(String[] args) {
ZoneId zoneId = ZoneId.of("America/Santiago");
// Date in winter (standard time)
String winterDate = "2024-07-01T00:00:00-04:00";
ZonedDateTime winterZDT = ZonedDateTime.parse(winterDate).withZoneSameLocal(zoneId);
OffsetDateTime winterODT = OffsetDateTime.parse(winterDate);
System.out.println("Winter 2023 (ZonedDateTime): " + winterZDT + " offset: " + winterZDT.getOffset());
System.out.println("Winter 2023 (OffsetDateTime): " + winterODT + " offset: " + winterODT.getOffset());
// Date in summer (daylight saving time DST)
String summerDate = "2024-12-01T00:00:00-04:00";
ZonedDateTime summerZDT = ZonedDateTime.parse(summerDate).withZoneSameLocal(zoneId);
OffsetDateTime summerODT = OffsetDateTime.parse(summerDate);
System.out.println("\nSummer 2023 (ZonedDateTime): " + summerZDT + " offset: " + summerZDT.getOffset());
System.out.println("Summer 2023 (OffsetDateTime): " + summerODT + " offset: " + summerODT.getOffset());
System.out.println("\n=================== Dynamic start of daylight saving time (DST) ====================");
// Before 2015, when standard and DST were applied normally
ZonedDateTime winter2014 = ZonedDateTime.parse("2014-07-01T00:00:00Z").withZoneSameLocal(zoneId);
ZonedDateTime summer2014 = ZonedDateTime.parse("2014-12-01T00:00:00Z").withZoneSameLocal(zoneId);
System.out.println("Winter 2014: " + winter2014 + " offset: " + winter2014.getOffset());
System.out.println("Summer 2014: " + summer2014 + " offset: " + summer2014.getOffset());
// During 2015, when Chile kept DST all year (political decision)
ZonedDateTime winter2015 = ZonedDateTime.parse("2015-07-01T00:00:00Z").withZoneSameLocal(zoneId);
ZonedDateTime summer2015 = ZonedDateTime.parse("2015-12-01T00:00:00Z").withZoneSameLocal(zoneId);
System.out.println("\nWinter 2015: " + winter2015 + " offset: " + winter2015.getOffset());
System.out.println("Summer 2015: " + summer2015 + " offset: " + summer2015.getOffset());
// After 2016, when standard and DST were restored
ZonedDateTime winter2016 = ZonedDateTime.parse("2016-07-01T00:00:00Z").withZoneSameLocal(zoneId);
ZonedDateTime summer2016 = ZonedDateTime.parse("2016-12-01T00:00:00Z").withZoneSameLocal(zoneId);
System.out.println("\nWinter 2016: " + winter2016 + " offset: " + winter2016.getOffset());
System.out.println("Summer 2016: " + summer2016 + " offset: " + summer2016.getOffset());
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: