On 2024-01-05 23:31, Guy Harris via tz asked:
The binary file obviously allows code that reads it to get information of the form "at date/time DT, one or more of {the offset from UTC, whether tm_isdst should be zero or non-zero, the time zone abbreviation} changes". The tzcode doesn't happen to have APIs to*provide* that information, but that's a different matter.
Is there software that needs to know about transitions that change none of those?
... So are there Java classes read those files and use them?
Or are they files produced by Java code that*uses* the data?
Yes, there is information on local civil times scales needed by many datetime software interfaces that is already present in the tzdb source files but that is missing from the TZif files since the very beginning: • the SAVE value (or the numeric RULES value) applicable at an instant is not available via TZif files, and cannot in general be deduced from its contents (see eg the SAVE value +01 h for Europe/Dublin when UT = 1916-10-01 + 02:25:21.1). It has even become more difficult to guess these values from TZif files since they are allowed to be negative. • the RULEs applicable at a specific instant (if any). They are available in TZif files (in versions 2 and 3) only for recent instants, and the start of their applicability is only given indirectly in TZif files, sometimes requiring a redundant transition (which is the topic of this thread). I think it would be very useful to have an official output of the tzdb data compilation process (zic and associated tools) that makes these data available for datetime software, even though they are not needed by the POSIX datetime functions. Michael Deckers.