Exercise 2 solution from datetime import datetime from zoneinfo import ZoneInfo names = ["Europe/London", "America/New_York", "Australia/Sydney", "Asia/Kolkata", "Asia/Tokyo"] for name in names: zone = ZoneInfo(name) jan = datetime(2026, 1, 15, 12, tzinfo=zone).utcoffset().total_seconds() / 3600 jul = datetime(2026, 7, 15, 12, tzinfo=zone).utcoffset().total_seconds() / 3600 print(f"{name:<20} Jan {jan:+.1f} Jul {jul:+.1f} {'changes' if jan != jul else 'constant'}") Output (run, and exactly as shown): Europe/London Jan +0.0 Jul +1.0 changes America/New_York Jan -5.0 Jul -4.0 changes Australia/Sydney Jan +11.0 Jul +10.0 changes Asia/Kolkata Jan +5.5 Jul +5.5 constant Asia/Tokyo Jan +9.0 Jul +9.0 constant Explanation: a named zone is a set of rules, so its offset depends on the date. Three of these zones change offset between January and July; the other two do not. Notice that the southern-hemisphere zone is on its larger offset in January, the opposite season from the northern ones. A fixed timezone(timedelta(...)) could not reproduce any of the changing zones.