Posted by Almaz Mingaleev – Software Engineer and Masha Khokhlova –
  Technical Program Manager
  [1][header-Better,faster,-stronger-timezone-updates-on-Android.png]

  It's that time of year again when many of us move our clocks! Oh wait,
  your Android devices did it automatically, didn’t they? For Android
  users living in many countries, this may not be surprising. For
  example, the US, EU and UK governments haven't changed their time
  legislation in a while^*, so users wake up every morning to see the
  correct time.

  But, what happens when time laws change? If you look globally,
  governments can and do change their time laws, sometimes every year,
  and Android devices have to keep up to support our global user base.

  To implement a region’s time legislation, Android devices have to
  follow a set of encoded rules. What are these rules? Let’s start with
  why rules are needed in the first place. Clearly, 7am in Los Angeles
  and 7am in London are not the same time. Moreover, if you are in London
  and want to know the time in Los Angeles, you have to know how many
  hours to subtract, and this is not fixed throughout the year^**. So to
  tell local time (time your watches should show) it is convenient to
  have a reference clock that everybody on the planet agrees on. This
  clock is named [2]UTC, coordinated universal time. Local time in London
  during winter matches UTC, during summer it is calculated by adding one
  hour to UTC, usually referred to as UTC+1. For Los Angeles local time
  during summer is UTC-8 (8 hours behind, UTC offset is -8 hours) and
  during winter it is UTC-7 correspondingly. When a region changes from
  one offset to another, we call that a “transition”. Combination of
  these offsets and rules when a transition happens (such as “last Sunday
  of March” or “first Sunday on or after 8th March”) defines a time zone.
  For some countries, the time zone rules can be very simple and
  primarily determined by their chosen UTC offset: “no transitions, we
  don’t move our clocks forwards and backwards”.

  Governments can decide to change the UTC offset for regions, introduce
  new time zone regions, or alter the day that daylight saving
  transitions occur. When governments do this, the time zone rules on
  every Android device needs to be updated, otherwise the Android device
  will continue to follow the old rules, which can lead to an incorrect
  local time being shown to users in the affected areas.

  Android is not alone in needing to keep track of this information.
  Fortunately, there is a database supported by IANA ([3]Internet
  Assigned Numbers Authority) and maintained by a small group of
  volunteers known as the TZDB (Time Zone Database) which is used as a
  basis for local timekeeping on most modern operating systems. The TZDB
  contains most of the information that Android needs.

  There is no schedule, but typically the TZDB releases a new update 4-5
  times a year. The Android team wants to release updates that affect its
  devices as soon as possible.

  How do these changes reach your devices?
  1. Government signs a law / decree.
      2. Someone lets IANA know about these changes
      3. Depending on how much lead time was given and changes announced
      by other countries IANA publishes a new TZDB release.
      4. The Android team incorporates the TZDB release (along with a
      small amount additional information we obtain from related projects
      and derive ourselves) into our codebase.
      5. We roll-out these updates to your devices. How the roll-out
      happens depends on the type and age of the Android device.

  a. Many mobile Android devices are covered by Google’s Project
      [4]Mainline, which means that Google sends updates to devices
      directly.

  b. Some devices are handled by the device’s manufacturer who takes the
      Android team’s source code updates and releases them to devices
      themselves according to their own update schedule.

  As you can see, there are quite a few steps. Applying, testing and
  releasing an update can take weeks. And it is not just Android and
  other computer operating systems like it who need to take action. There
  are usually telecoms, banks, airlines and software companies that have
  to make adjustments to their own systems and time tables. Citizens of a
  country need to be made aware of changes so they know what to expect,
  especially if they are using older devices that might not receive
  necessary updates. And it all takes time and can cause problems for
  countless people if it isn’t handled well. The amount of disruption
  caused by a change is usually determined by the clarity of the
  legislation and notice period that governments provide. The TZDB
  volunteers are good at spotting changes, but it helps if the
  governments notify IANA directly, especially when it’s not clear the
  exact regions or existing laws affected. Unfortunately, many of the
  recent time zone changes were given with about a month or less notice
  time. Android has a set of [5]recommendations for how much notice to
  provide. Other operating systems have similar recommendations.

  Android is constantly evolving. One of such improvements, Project
  Mainline, [6]introduced in Android 10, has made a big difference in how
  we update important parts of the Android operating system. It allows us
  to deliver select AOSP components directly through Google Play, making
  updates faster than a full OTA update and reducing duplication of
  efforts done by each OEM.

  From the beginning, time zone rules were a component in Mainline,
  called [7]Time Zone Data or tzdata module. This integration allowed us
  to react more quickly to government-mandated time zone changes than
  before. However until 2023 tzdata updates were still bundled with other
  Mainline changes, sometimes leading to testing complexities and slower
  deployment.

  In 2023, we made further investments in Mainline's infrastructure and
  decoupled the tzdata module from the other components. With this
  isolation, we gained the ability to respond rapidly to time zone
  legislation changes — often releasing updates to Android users outside
  of the established release cadence. Additionally, this change means
  time zone updates can reach a far greater number of Android devices,
  ensuring you as Android users always see the correct time.

  So while your Android phone may not be able to restore that lost hour
  of sleep, you can rest assured that it will show the accurate time,
  thanks to volunteers and the Android team.

  Curious about the ever-changing world of time zones? Explore the
  [8]IANA Time Zone Database and learn more about how [9]time and time
  zones are managed on Android.

  ^*In 2018-2019 there were changes in Alaska. This is a blogpost, not a
  technical documentation!

  ^**Because the US and UK apply their daylight saving changes at
  different local times and on different days of the year.

References

  1. https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu_XZWUxUGTyu6vmO0ul45K8wOtANb_tMiy3yZGUcNrFydI7sAgJ8FneIcrHYqhm8I5MRNpHjIKIy-53GoJi4F4_-shBDcfqP6XQy3w5TC6PL9pNXA2iPV-It4q32PzaN68xmOyQrnbE4BeBp60vubra0PQIX6EB8oCiXsLl53tcsAwyfICzYxqTggZQw/s1600/header-Better,faster,-stronger-timezone-updates-on-Android.png
  2. https://en.wikipedia.org/wiki/Coordinated_Universal_Timehttps://en.wikipedia.org/wiki/Coordinated_Universal_Time
  3. https://www.iana.org/time-zones
  4. https://source.android.com/docs/core/ota/modular-system
  5. https://source.android.com/docs/core/connect/time/time-zone-policy-recommendations
  6. https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
  7. https://source.android.com/docs/core/ota/modular-system/timezone
  8. https://data.iana.org/time-zones/tz-link.html
  9. https://source.android.com/docs/core/connect/time