diff --git a/CHANGELOG.md b/CHANGELOG.md index 274917844..e8b54a427 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ # Changelog - Unreleased +- 2.4.0 (2024-12-13, TZDB version 2024b) + - Support new `%z` value in FORMAT column. + - Upgrade TZDB to 2024b + - https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/IZ7AO6WRE3W3TWBL5IR6PMQUL433BQIE/ + - "Improve historical data for Mexico, Mongolia, and Portugal. System V + names are now obsolescent. The main data form now uses %z. The code + now conforms to RFC 8536 for early timestamps. Support POSIX.1-2024, + which removes asctime_r and ctime_r. Assume POSIX.2-1992 or later for + shell scripts. SUPPORT_C89 now defaults to 1." - 2.3.2 (2024-07-25, TZDB version 2024a) - Upgrade TZDB to 2024a - https://mm.icann.org/pipermail/tz-announce/2024-February/000081.html diff --git a/DEVELOPER.md b/DEVELOPER.md index 41b991f85..15904f164 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -123,7 +123,7 @@ implementations defined, corresponding to different resolution levels supported by each set: * `ZoneInfoLow.h` - * low resolution + * low resolution persistence format * 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for DST offsets * year fields using 1-byte offset from a `baseYear` of 2100, @@ -136,7 +136,7 @@ by each set: * `ZoneInfoMid.h` * medium resolution persistence format * 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for - DST offset) + DST offset * 2-byte year fields supporting years `[-32767,32765]` * `zoneinfomid::ZoneContext<>` * `zoneinfomid::ZoneRule<>` diff --git a/README.md b/README.md index e40338d09..e595b788c 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ and the `zonedbc` database to support all timezones, for all transitions defined in the IANA TZ database (`[1844,2087]`), and extending the validity of timezone calculations from `[2000,10000)` to `[0001,10000)`. -**Version**: 2.3.2 (2024-07-25, TZDB version 2024a) +**Version**: 2.4.0 (2024-12-13, TZDB version 2024b) **Changelog**: [CHANGELOG.md](CHANGELOG.md) diff --git a/USER_GUIDE.md b/USER_GUIDE.md index e5d4f9f88..55882f358 100644 --- a/USER_GUIDE.md +++ b/USER_GUIDE.md @@ -18,7 +18,7 @@ The IANA TZ database is programmatically generated into 3 predefined databases: databases have different accuracy ranges, and are designed to work with different `ZoneProcessor` and `ZoneManager` classes. -**Version**: 2.3.2 (2024-07-25, TZDB 2024a) +**Version**: 2.4.0 (2024-12-13, TZDB 2024b) **Related Documents**: diff --git a/docs/doxygen.cfg b/docs/doxygen.cfg index b9e4cb4b2..fe18e1720 100644 --- a/docs/doxygen.cfg +++ b/docs/doxygen.cfg @@ -38,7 +38,7 @@ PROJECT_NAME = AceTime # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.3.0 +PROJECT_NUMBER = 2.4.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/docs/html/AceTime_8h_source.html b/docs/html/AceTime_8h_source.html index 55be1d0d9..8ac70b621 100644 --- a/docs/html/AceTime_8h_source.html +++ b/docs/html/AceTime_8h_source.html @@ -22,7 +22,7 @@
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoHigh.h.
+
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoHigh.h.
More...
#include <stdint.h>#include <Arduino.h>#include <AceCommon.h>#include "compat.h"#include "BrokerCommon.h"#include "ZoneInfoHigh.h"#include "ZoneInfoHigh.h"These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoHigh.h.
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoHigh.h.
The zoneinfo files are stored in flash memory (using the PROGMEM keyword), and cannot be accessed directly on microcontrollers using the Harvard architecture (e.g. AVR) where data and program live in 2 different address spaces. The data in flash memory must be accessed using helper routines in <pgmspace.h>. These classes abstract away this difference so that the code BasicZoneProcessor and ExtendedZoneProcessor can be written to be (mostly) agnostic to how the zoneinfo files are stored.
Definition in file BrokersHigh.h.
diff --git a/docs/html/BrokersHigh_8h__incl.map b/docs/html/BrokersHigh_8h__incl.map index 8590d78c0..b153efa2a 100644 --- a/docs/html/BrokersHigh_8h__incl.map +++ b/docs/html/BrokersHigh_8h__incl.map @@ -5,7 +5,7 @@ - + diff --git a/docs/html/BrokersHigh_8h__incl.md5 b/docs/html/BrokersHigh_8h__incl.md5 index cb7989b72..315c27ea7 100644 --- a/docs/html/BrokersHigh_8h__incl.md5 +++ b/docs/html/BrokersHigh_8h__incl.md5 @@ -1 +1 @@ -c5bf13b48a3cfaa3a5627c91f36f0233 \ No newline at end of file +068d3a1e434e52a9f77b2e21f5fe1070 \ No newline at end of file diff --git a/docs/html/BrokersHigh_8h_source.html b/docs/html/BrokersHigh_8h_source.html index a76906f48..760814637 100644 --- a/docs/html/BrokersHigh_8h_source.html +++ b/docs/html/BrokersHigh_8h_source.html @@ -22,7 +22,7 @@These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoLow.h.
+
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoLow.h.
More...
#include <stdint.h>#include <Arduino.h>#include <AceCommon.h>#include "compat.h"#include "BrokerCommon.h"#include "ZoneInfoLow.h"#include "ZoneInfoLow.h"These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoLow.h.
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoLow.h.
The zoneinfo files are stored in flash memory (using the PROGMEM keyword), and cannot be accessed directly on microcontrollers using the Harvard architecture (e.g. AVR) where data and program live in 2 different address spaces. The data in flash memory must be accessed using helper routines in <pgmspace.h>. These classes abstract away this difference so that the code BasicZoneProcessor and ExtendedZoneProcessor can be written to be (mostly) agnostic to how the zoneinfo files are stored.
Definition in file BrokersLow.h.
diff --git a/docs/html/BrokersLow_8h__incl.map b/docs/html/BrokersLow_8h__incl.map index 2487822df..a23588024 100644 --- a/docs/html/BrokersLow_8h__incl.map +++ b/docs/html/BrokersLow_8h__incl.map @@ -5,7 +5,7 @@ - + diff --git a/docs/html/BrokersLow_8h__incl.md5 b/docs/html/BrokersLow_8h__incl.md5 index 8f3121d7c..f5838bc32 100644 --- a/docs/html/BrokersLow_8h__incl.md5 +++ b/docs/html/BrokersLow_8h__incl.md5 @@ -1 +1 @@ -73e418df9292c0e8dde722a4df3002c6 \ No newline at end of file +203a8de19c4f81b9cdd3be45d68d1ed9 \ No newline at end of file diff --git a/docs/html/BrokersLow_8h_source.html b/docs/html/BrokersLow_8h_source.html index ddc7b0b98..15ca7df1b 100644 --- a/docs/html/BrokersLow_8h_source.html +++ b/docs/html/BrokersLow_8h_source.html @@ -22,7 +22,7 @@These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoMid.h.
+
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoMid.h.
More...
#include <stdint.h>#include <Arduino.h>#include <AceCommon.h>#include "compat.h"#include "BrokerCommon.h"#include "ZoneInfoMid.h"#include "ZoneInfoMid.h"These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoMid.h.
These classes provide a thin layer of indirection for accessing the data structures defined by ZoneInfoMid.h.
The zoneinfo files are stored in flash memory (using the PROGMEM keyword), and cannot be accessed directly on microcontrollers using the Harvard architecture (e.g. AVR) where data and program live in 2 different address spaces. The data in flash memory must be accessed using helper routines in <pgmspace.h>. These classes abstract away this difference so that the code BasicZoneProcessor and ExtendedZoneProcessor can be written to be (mostly) agnostic to how the zoneinfo files are stored.
Definition in file BrokersMid.h.
diff --git a/docs/html/BrokersMid_8h__incl.map b/docs/html/BrokersMid_8h__incl.map index 12976190a..c182e40fd 100644 --- a/docs/html/BrokersMid_8h__incl.map +++ b/docs/html/BrokersMid_8h__incl.map @@ -5,7 +5,7 @@ - + diff --git a/docs/html/BrokersMid_8h__incl.md5 b/docs/html/BrokersMid_8h__incl.md5 index baec5dbd3..79b8b2203 100644 --- a/docs/html/BrokersMid_8h__incl.md5 +++ b/docs/html/BrokersMid_8h__incl.md5 @@ -1 +1 @@ -1ce04fc6d3ed115b700392ac6d92d66a \ No newline at end of file +ee5f2749bc02022e21dbd471facbfb0a \ No newline at end of file diff --git a/docs/html/BrokersMid_8h_source.html b/docs/html/BrokersMid_8h_source.html index cde821c35..71e8a5f01 100644 --- a/docs/html/BrokersMid_8h_source.html +++ b/docs/html/BrokersMid_8h_source.html @@ -22,7 +22,7 @@|
+ AceTime
+ 2.4.0
+
+ Date and time classes for Arduino that support timezones from the TZ Database.
+ |
+
|
+ AceTime
+ 2.4.0
+
+ Date and time classes for Arduino that support timezones from the TZ Database.
+ |
+
|
+ AceTime
+ 2.4.0
+
+ Date and time classes for Arduino that support timezones from the TZ Database.
+ |
+
Data structures that encodes the high resolution zoneinfo database persistence format. +More...
+#include <stdint.h>

Go to the source code of this file.
++Classes | |
| struct | ace_time::zoneinfohigh::ZoneContext< S > |
| Metadata about the zone database. More... | |
| struct | ace_time::zoneinfohigh::ZoneRule< S > |
| A time zone transition rule. More... | |
| struct | ace_time::zoneinfohigh::ZonePolicy< S > |
| A collection of transition rules which describe the DST rules of a given administrative region. More... | |
| struct | ace_time::zoneinfohigh::ZoneEra< S > |
| An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More... | |
| struct | ace_time::zoneinfohigh::ZoneInfo< S, ZC > |
| Representation of a given time zone, implemented as an array of ZoneEra records. More... | |
Data structures that encodes the high resolution zoneinfo database persistence format.
+It has a 1-second resolution for AT, UNTIL, STDOFF, and DST offsets. The year fiels use 2-bytes which supporting years [-32767,32765].
The BrokersHigh.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.
+The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h.
+See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.
+ +Definition in file ZoneInfoHigh.h.
+|
+ AceTime
+ 2.4.0
+
+ Date and time classes for Arduino that support timezones from the TZ Database.
+ |
+
Data structures describe the low resolution zoneinfo persistence format. +More...
+#include <stdint.h>

Go to the source code of this file.
++Classes | |
| struct | ace_time::zoneinfolow::ZoneContext< S > |
| Metadata about the zone database. More... | |
| struct | ace_time::zoneinfolow::ZoneRule< S > |
| A time zone transition rule. More... | |
| struct | ace_time::zoneinfolow::ZonePolicy< S > |
| A collection of transition rules which describe the DST rules of a given administrative region. More... | |
| struct | ace_time::zoneinfolow::ZoneEra< S > |
| An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More... | |
| struct | ace_time::zoneinfolow::ZoneInfo< S, ZC > |
| Representation of a given time zone, implemented as an array of ZoneEra records. More... | |
Data structures describe the low resolution zoneinfo persistence format.
+It has a 1-minute resolution for AT, UNTIL, STDOFF; 15-minute resolution for DST offsets. The year fields use a 1-byte offset from a baseYear which gives a [-127,+126] range.
The BrokersLow.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.
+The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h.
+See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.
+ +Definition in file ZoneInfoLow.h.
+|
+ AceTime
+ 2.4.0
+
+ Date and time classes for Arduino that support timezones from the TZ Database.
+ |
+
Data structures that describe the mid resolution zoneinfo persistence format. +More...
+#include <stdint.h>

Go to the source code of this file.
++Classes | |
| struct | ace_time::zoneinfomid::ZoneContext< S > |
| Metadata about the zone database. More... | |
| struct | ace_time::zoneinfomid::ZoneRule< S > |
| A time zone transition rule. More... | |
| struct | ace_time::zoneinfomid::ZonePolicy< S > |
| A collection of transition rules which describe the DST rules of a given administrative region. More... | |
| struct | ace_time::zoneinfomid::ZoneEra< S > |
| An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period. More... | |
| struct | ace_time::zoneinfomid::ZoneInfo< S, ZC > |
| Representation of a given time zone, implemented as an array of ZoneEra records. More... | |
Data structures that describe the mid resolution zoneinfo persistence format.
+by the AceTimeTools compiler. It has a 1-minute resolution for AT, UNTIL, STDOFF; a 15-minute resolution for DST offset (similar to ZoneInfoLow). But it also uses 2-byte year fields supporting year range of [-32767,32765] (similar to ZoneInfoHigh).
The BrokersMid.h file provides an abtraction layer which converts these low-level fields into a semantically consistent API which can be used by the AceTime classes.
+The various zoneinfo database files (e.g. zonedb, zonedbx, zonedbc) will use one of these persistence formats, as defined by infos.h. (The ZoneInfoMid.h persistence format was used at some point during the development, but it is current not used by any of the zone*db database files.)
+See also DEVELOPER.md for an overview of the ZoneInfoXXX layer.
+ +Definition in file ZoneInfoMid.h.
+A specific implementation of BasicZoneProcessorTemplate that uses ZoneXxxBrokers which read from zonedb files in PROGMEM flash memory.
-Definition at line 929 of file BasicZoneProcessor.h.
+Definition at line 923 of file BasicZoneProcessor.h.
Definition at line 203 of file BasicZoneProcessor.h.
+Definition at line 201 of file BasicZoneProcessor.h.
Definition at line 372 of file BasicZoneProcessor.h.
@@ -346,7 +343,7 @@Definition at line 335 of file BasicZoneProcessor.h.
+Definition at line 332 of file BasicZoneProcessor.h.
@@ -384,7 +381,7 @@Definition at line 244 of file BasicZoneProcessor.h.
+Definition at line 242 of file BasicZoneProcessor.h.
@@ -425,7 +422,7 @@Definition at line 312 of file BasicZoneProcessor.h.
+Definition at line 309 of file BasicZoneProcessor.h.
@@ -466,7 +463,7 @@Definition at line 316 of file BasicZoneProcessor.h.
+Definition at line 313 of file BasicZoneProcessor.h.
@@ -507,7 +504,7 @@Definition at line 320 of file BasicZoneProcessor.h.
+Definition at line 317 of file BasicZoneProcessor.h.
@@ -540,7 +537,7 @@Definition at line 359 of file BasicZoneProcessor.h.
+Definition at line 356 of file BasicZoneProcessor.h.
@@ -583,7 +580,7 @@Definition at line 326 of file BasicZoneProcessor.h.
+Definition at line 323 of file BasicZoneProcessor.h.
diff --git a/docs/html/classace__time_1_1CompleteZone-members.html b/docs/html/classace__time_1_1CompleteZone-members.html index db40d4589..ce7a11aff 100644 --- a/docs/html/classace__time_1_1CompleteZone-members.html +++ b/docs/html/classace__time_1_1CompleteZone-members.html @@ -22,7 +22,7 @@A specific implementation of ExtendedZoneProcessorTemplate that uses the extended::ZoneXxxBrokers classes which read from 'zonedbx' files in PROGMEM flash memory.
-Definition at line 1174 of file ExtendedZoneProcessor.h.
+Definition at line 1175 of file ExtendedZoneProcessor.h.
Definition at line 361 of file Transition.h.
+Definition at line 355 of file Transition.h.
This should be treated as a private, it is exposed only for testing purposes.
-Definition at line 367 of file Transition.h.
+Definition at line 361 of file Transition.h.
@@ -261,7 +261,7 @@This should be treated as a private, it is exposed only for testing purposes.
-Definition at line 381 of file Transition.h.
+Definition at line 375 of file Transition.h.
@@ -282,7 +282,7 @@This should be treated as a private, it is exposed only for testing purposes.
-Definition at line 374 of file Transition.h.
+Definition at line 368 of file Transition.h.
@@ -316,7 +316,7 @@Definition at line 537 of file Transition.h.
+Definition at line 531 of file Transition.h.
@@ -348,7 +348,7 @@Definition at line 455 of file Transition.h.
@@ -380,7 +380,7 @@Definition at line 505 of file Transition.h.
@@ -412,7 +412,7 @@Definition at line 495 of file Transition.h.
@@ -445,7 +445,7 @@Definition at line 663 of file Transition.h.
@@ -478,7 +478,7 @@Definition at line 571 of file Transition.h.
+Definition at line 565 of file Transition.h.
@@ -510,7 +510,7 @@Definition at line 752 of file Transition.h.
@@ -542,7 +542,7 @@Definition at line 438 of file Transition.h.
+Definition at line 432 of file Transition.h.
@@ -574,7 +574,7 @@Definition at line 392 of file Transition.h.
+Definition at line 386 of file Transition.h.
@@ -606,7 +606,7 @@Definition at line 719 of file Transition.h.
@@ -638,7 +638,7 @@Definition at line 470 of file Transition.h.
@@ -670,7 +670,7 @@Definition at line 745 of file Transition.h.
@@ -702,7 +702,7 @@Definition at line 414 of file Transition.h.
+Definition at line 408 of file Transition.h.
diff --git a/docs/html/classace__time_1_1internal_1_1EpochConverterHinnant-members.html b/docs/html/classace__time_1_1internal_1_1EpochConverterHinnant-members.html index 75521aace..d250ea704 100644 --- a/docs/html/classace__time_1_1internal_1_1EpochConverterHinnant-members.html +++ b/docs/html/classace__time_1_1internal_1_1EpochConverterHinnant-members.html @@ -22,7 +22,7 @@Variables | |
| const uint8_t | ace_time::internal::kAbbrevSize = 6 + 1 |
| const uint8_t | ace_time::internal::kAbbrevSize = 7 + 1 |
| Size of the c-string buffer needed to hold a time zone abbreviation. More... | |
| const uint8_t ace_time::internal::kAbbrevSize = 6 + 1 | +const uint8_t ace_time::internal::kAbbrevSize = 7 + 1 |
Size of the c-string buffer needed to hold a time zone abbreviation.
-Longest abbreviation currently seems to be 5 characters (https://www.timeanddate.com/time/zones/) but the TZ database spec says that abbreviations are 3 to 6 characters (https://data.iana.org/time-zones/theory.html#abbreviations), so use 6 as the maximum. Plus one for the terminating NUL character.
+Let's increase the max length from 6 to 7 to handle the z. We also need one extra byte for the terminating NUL character.
- +ZoneInfoHigh.h. ZoneInfoHigh.h. ZoneInfoLow.h. ZoneInfoLow.h. ZoneInfoMid.h. ZoneInfoMid.h. Definition at line 60 of file BasicZoneProcessor.h.
+Definition at line 59 of file BasicZoneProcessor.h.
Definition at line 109 of file BasicZoneProcessor.h.
+Definition at line 107 of file BasicZoneProcessor.h.
@@ -177,7 +178,7 @@Definition at line 65 of file BasicZoneProcessor.h.
@@ -198,28 +199,7 @@Definition at line 100 of file BasicZoneProcessor.h.
- - - - -| int16_t ace_time::basic::TransitionTemplate< ZIB, ZEB, ZPB, ZRB >::offsetMinutes | -
The total effective UTC offset minutes at the start of transition, including DST offset.
-(Maybe rename this effectiveOffsetMinutes?) The DST offset is stored at deltaMinutes.
- -Definition at line 87 of file BasicZoneProcessor.h.
+Definition at line 98 of file BasicZoneProcessor.h.
Definition at line 76 of file BasicZoneProcessor.h.
diff --git a/docs/html/structace__time_1_1extended_1_1DateTuple-members.html b/docs/html/structace__time_1_1extended_1_1DateTuple-members.html index 79eb4bd18..dcad12d21 100644 --- a/docs/html/structace__time_1_1extended_1_1DateTuple-members.html +++ b/docs/html/structace__time_1_1extended_1_1DateTuple-members.html @@ -22,7 +22,7 @@Definition at line 317 of file Transition.h.
+Definition at line 311 of file Transition.h.
Tuple of a matching Transition and its 'fold'.
Used by findTransitionForSeconds() which is guaranteed to return only a single Transition if found. Usually fold=0. But if the epochSeconds maps to a LocalDateTime which occurs a second time during a "fall back", then fold is set to 1.
Definition at line 287 of file Transition.h.
+Definition at line 281 of file Transition.h.
This is needed because a fold=0 can mean that the LocalDateTime occurs exactly once, or that the first of two occurrences of LocalDateTime was selected by the epochSeconds.
-Definition at line 300 of file Transition.h.
+Definition at line 294 of file Transition.h.
diff --git a/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html b/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html index 345799c48..e7d962094 100644 --- a/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html +++ b/docs/html/structace__time_1_1extended_1_1TransitionTemplate-members.html @@ -22,7 +22,7 @@The calculated effective time zone abbreviation, e.g.
-"PST" or "PDT". Initially this string buffer temporarily holds the ZoneRule.letter() string, until createAbbreviation() is called, which consumes the letter can creates the abbreviation.
"PST" or "PDT". Initially this string buffer temporarily holds the ZoneRule.letter() string, until createAbbreviation() consumes the letter and creates the actual abbreviation.
Definition at line 196 of file Transition.h.
+Definition at line 190 of file Transition.h.
@@ -226,30 +227,7 @@It is set by setFreeAgentAsPriorIfValid() if the transition is a prior transition.
-Definition at line 205 of file Transition.h.
- - - - -| int32_t ace_time::extended::TransitionTemplate< ZEB, ZPB, ZRB >::offsetSeconds | -
The base offset minutes, not the total effective UTC offset.
-Note that this is different than basic::Transition::offsetSeconds used by BasicZoneProcessor which is the total effective offsetSeconds. (It may be possible to make this into an effective offsetSeconds (i.e. offsetSeconds
Definition at line 185 of file Transition.h.
+Definition at line 199 of file Transition.h.
Metadata about the zone database.
A ZoneInfo struct will contain a pointer to this.
-Definition at line 19 of file ZoneInfoHigh.h.
+Definition at line 37 of file ZoneInfoHigh.h.
Definition at line 86 of file ZoneInfoHigh.h.
@@ -204,7 +204,7 @@Definition at line 26 of file ZoneInfoHigh.h.
+Definition at line 44 of file ZoneInfoHigh.h.
@@ -233,7 +233,7 @@Definition at line 34 of file ZoneInfoHigh.h.
+Definition at line 52 of file ZoneInfoHigh.h.
@@ -262,7 +262,7 @@Definition at line 44 of file ZoneInfoHigh.h.
+Definition at line 62 of file ZoneInfoHigh.h.
@@ -283,7 +283,7 @@Definition at line 80 of file ZoneInfoHigh.h.
@@ -304,7 +304,7 @@Definition at line 83 of file ZoneInfoHigh.h.
diff --git a/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneEra-members.html b/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneEra-members.html index 51a4e9694..470dbae80 100644 --- a/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneEra-members.html +++ b/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneEra-members.html @@ -22,7 +22,7 @@An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period.
Corresponds to one line of the ZONE record in the TZ Database file ending with an UNTIL field. The ZonePolicy is determined by the RULES column in the TZ Database file.
-There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then deltaCode determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the deltaCode offset is given by the ZoneRule.deltaCode which matches the time instant of interest.
+There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then ZoneEra.deltaMinutes determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the deltaMinutes offset is given by the ZoneRule.deltaMinutes which matches the time instant of interest.
-Definition at line 187 of file ZoneInfoHigh.h.
+Definition at line 206 of file ZoneInfoHigh.h.
Definition at line 254 of file ZoneInfoHigh.h.
@@ -160,13 +160,13 @@Zone abbreviations (e.g.
-PST, EST) determined by the FORMAT column. It has 3 encodings in the TZ DB files:
-1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule.
+PST, EST) determined by the FORMAT column. It has 4 encodings in the TZ DB files:
+1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule. 4) An empty string representing the "%z" format.
BasicZoneProcessor supports only a single letter subsitution from LETTER, but ExtendedZoneProcessor supports substituting multi-character strings (e.g. "CAT", "DD", "+00").
The TZ DB files use 's' to indicate the substitution, but for simplicity, AceTime replaces the "%s" with just a '' character with no loss of functionality. This also makes the string-replacement code a little simpler. For example, 'EsT' is stored as 'ET', and the LETTER substitution is performed on the '' character.
-This field will never be a 'nullptr' if it was derived from an actual entry from the TZ dtabase. There is an internal object named ExtendedZoneProcessor::kAnchorEra which does set this field to nullptr. Maybe it should be set to ""?
This field will never be a 'nullptr' because the AceTimeTools compiler always generates a ZoneEra entry with a non-null format.
-Definition at line 219 of file ZoneInfoHigh.h.
+Definition at line 237 of file ZoneInfoHigh.h.
@@ -187,7 +187,7 @@Definition at line 243 of file ZoneInfoHigh.h.
@@ -208,7 +208,7 @@Definition at line 269 of file ZoneInfoHigh.h.
@@ -229,7 +229,7 @@Definition at line 262 of file ZoneInfoHigh.h.
@@ -250,7 +250,7 @@Definition at line 275 of file ZoneInfoHigh.h.
@@ -274,7 +274,7 @@Definition at line 287 of file ZoneInfoHigh.h.
@@ -295,7 +295,7 @@Definition at line 259 of file ZoneInfoHigh.h.
@@ -316,7 +316,7 @@Definition at line 211 of file ZoneInfoHigh.h.
diff --git a/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneInfo-members.html b/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneInfo-members.html index f576b4acc..f085f0c55 100644 --- a/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneInfo-members.html +++ b/docs/html/structace__time_1_1zoneinfohigh_1_1ZoneInfo-members.html @@ -22,7 +22,7 @@Representation of a given time zone, implemented as an array of ZoneEra records.
-Definition at line 277 of file ZoneInfoHigh.h.
+Definition at line 295 of file ZoneInfoHigh.h.
Definition at line 279 of file ZoneInfoHigh.h.
+Definition at line 297 of file ZoneInfoHigh.h.
@@ -158,7 +158,7 @@An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.
-Definition at line 306 of file ZoneInfoHigh.h.
+Definition at line 324 of file ZoneInfoHigh.h.
@@ -179,7 +179,7 @@Definition at line 333 of file ZoneInfoHigh.h.
@@ -200,7 +200,7 @@Definition at line 304 of file ZoneInfoHigh.h.
diff --git a/docs/html/structace__time_1_1zoneinfohigh_1_1ZonePolicy-members.html b/docs/html/structace__time_1_1zoneinfohigh_1_1ZonePolicy-members.html index 1d7329373..8c52a9330 100644 --- a/docs/html/structace__time_1_1zoneinfohigh_1_1ZonePolicy-members.html +++ b/docs/html/structace__time_1_1zoneinfohigh_1_1ZonePolicy-members.html @@ -22,7 +22,7 @@A collection of transition rules which describe the DST rules of a given administrative region.
A given time zone (ZoneInfo) can follow a different ZonePolicy at different times. Conversely, multiple time zones (ZoneInfo) can choose to follow the same ZonePolicy at different times.
-Definition at line 169 of file ZoneInfoHigh.h.
+Definition at line 187 of file ZoneInfoHigh.h.
A time zone transition rule.
It is useful to think of this as a transition rule that repeats on the given (month, day, hour) every year during the interval [fromYear, toYear] inclusive.
-Definition at line 95 of file ZoneInfoHigh.h.
+Definition at line 113 of file ZoneInfoHigh.h.
Definition at line 156 of file ZoneInfoHigh.h.
@@ -162,7 +162,7 @@Definition at line 150 of file ZoneInfoHigh.h.
@@ -183,7 +183,7 @@Definition at line 163 of file ZoneInfoHigh.h.
@@ -204,7 +204,7 @@Definition at line 121 of file ZoneInfoHigh.h.
@@ -231,7 +231,7 @@Definition at line 177 of file ZoneInfoHigh.h.
@@ -252,7 +252,7 @@Definition at line 139 of file ZoneInfoHigh.h.
@@ -276,7 +276,7 @@Definition at line 133 of file ZoneInfoHigh.h.
diff --git a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneContext-members.html b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneContext-members.html index 2bca70a99..2aea77f16 100644 --- a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneContext-members.html +++ b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneContext-members.html @@ -22,7 +22,7 @@Metadata about the zone database.
A ZoneInfo struct will contain a pointer to this.
-Definition at line 19 of file ZoneInfoLow.h.
+Definition at line 37 of file ZoneInfoLow.h.
Definition at line 32 of file ZoneInfoLow.h.
+Definition at line 50 of file ZoneInfoLow.h.
@@ -233,7 +233,7 @@Definition at line 43 of file ZoneInfoLow.h.
+Definition at line 61 of file ZoneInfoLow.h.
@@ -262,7 +262,7 @@Definition at line 56 of file ZoneInfoLow.h.
+Definition at line 74 of file ZoneInfoLow.h.
@@ -283,7 +283,7 @@Definition at line 95 of file ZoneInfoLow.h.
@@ -304,7 +304,7 @@Definition at line 98 of file ZoneInfoLow.h.
diff --git a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneEra-members.html b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneEra-members.html index 5042d53f1..bc5b8403b 100644 --- a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneEra-members.html +++ b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneEra-members.html @@ -22,7 +22,7 @@An entry in ZoneInfo which describes which ZonePolicy was being followed during a particular time period.
Corresponds to one line of the ZONE record in the TZ Database file ending with an UNTIL field. The ZonePolicy is determined by the RULES column in the TZ Database file.
-There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then deltaCode determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the deltaCode offset is given by the ZoneRule.deltaCode which matches the time instant of interest.
+There are 2 types of ZoneEra: 1) zonePolicy == nullptr. Then ZoneEra.deltaCode determines the additional offset from offsetCode. A value of '-' in the TZ Database file is stored as 0. 2) zonePolicy != nullptr. Then the ZoneRule.deltaCode offset is given by the ZoneRule.deltaCode which matches the time instant of interest.
-Definition at line 207 of file ZoneInfoLow.h.
+Definition at line 226 of file ZoneInfoLow.h.
Definition at line 279 of file ZoneInfoLow.h.
@@ -163,13 +163,13 @@Zone abbreviations (e.g.
-PST, EST) determined by the FORMAT column. It has 3 encodings in the TZ DB files:
-1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule.
+PST, EST) determined by the FORMAT column. It has 4 encodings in the TZ DB files:
+1) A fixed string, e.g. "GMT". 2) Two strings separated by a '/', e.g. "-03/-02" indicating "{std}/{dst}" options. 3) A single string with a substitution, e.g. "E%sT", where the "%s" is replaced by the LETTER value from the ZoneRule. 4) An empty string representing the "%z" format.
BasicZoneProcessor supports only a single letter subsitution from LETTER, but ExtendedZoneProcessor supports substituting multi-character strings (e.g. "CAT", "DD", "+00").
The TZ DB files use 's' to indicate the substitution, but for simplicity, AceTime replaces the "%s" with just a '' character with no loss of functionality. This also makes the string-replacement code a little simpler. For example, 'EsT' is stored as 'ET', and the LETTER substitution is performed on the '' character.
-This field will never be a 'nullptr' if it was derived from an actual entry from the TZ dtabase. There is an internal object named ExtendedZoneProcessor::kAnchorEra which does set this field to nullptr. Maybe it should be set to ""?
This field will never be a 'nullptr' because the AceTimeTools compiler always generates a ZoneEra entry with a non-null format.
-Definition at line 239 of file ZoneInfoLow.h.
+Definition at line 257 of file ZoneInfoLow.h.
@@ -190,7 +190,7 @@Definition at line 260 of file ZoneInfoLow.h.
@@ -211,7 +211,7 @@Definition at line 294 of file ZoneInfoLow.h.
@@ -232,7 +232,7 @@Definition at line 287 of file ZoneInfoLow.h.
@@ -253,7 +253,7 @@Definition at line 300 of file ZoneInfoLow.h.
@@ -277,7 +277,7 @@Definition at line 312 of file ZoneInfoLow.h.
@@ -298,7 +298,7 @@Definition at line 284 of file ZoneInfoLow.h.
@@ -319,7 +319,7 @@Definition at line 231 of file ZoneInfoLow.h.
diff --git a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneInfo-members.html b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneInfo-members.html index 3dda31927..5887167d3 100644 --- a/docs/html/structace__time_1_1zoneinfolow_1_1ZoneInfo-members.html +++ b/docs/html/structace__time_1_1zoneinfolow_1_1ZoneInfo-members.html @@ -22,7 +22,7 @@Representation of a given time zone, implemented as an array of ZoneEra records.
-Definition at line 302 of file ZoneInfoLow.h.
+Definition at line 320 of file ZoneInfoLow.h.
Definition at line 304 of file ZoneInfoLow.h.
+Definition at line 322 of file ZoneInfoLow.h.
@@ -158,7 +158,7 @@An alternative implementation is to set numEras to 0 for a Link, and traverse the targetInfo to find the required numEras and eras. This led to more complicated code.
-Definition at line 331 of file ZoneInfoLow.h.
+Definition at line 349 of file ZoneInfoLow.h.
@@ -179,7 +179,7 @@Definition at line 358 of file ZoneInfoLow.h.
@@ -200,7 +200,7 @@Definition at line 329 of file ZoneInfoLow.h.
diff --git a/docs/html/structace__time_1_1zoneinfolow_1_1ZonePolicy-members.html b/docs/html/structace__time_1_1zoneinfolow_1_1ZonePolicy-members.html index 7f4a97ed7..052b1ce0c 100644 --- a/docs/html/structace__time_1_1zoneinfolow_1_1ZonePolicy-members.html +++ b/docs/html/structace__time_1_1zoneinfolow_1_1ZonePolicy-members.html @@ -22,7 +22,7 @@A collection of transition rules which describe the DST rules of a given administrative region.
A given time zone (ZoneInfo) can follow a different ZonePolicy at different times. Conversely, multiple time zones (ZoneInfo) can choose to follow the same ZonePolicy at different times.
-Definition at line 189 of file ZoneInfoLow.h.
+Definition at line 207 of file ZoneInfoLow.h.
A time zone transition rule.
It is useful to think of this as a transition rule that repeats on the given (month, day, hour) every year during the interval [fromYear, toYear] inclusive.
-Definition at line 110 of file ZoneInfoLow.h.
+Definition at line 128 of file ZoneInfoLow.h.
Definition at line 160 of file ZoneInfoLow.h.
@@ -162,7 +162,7 @@Definition at line 171 of file ZoneInfoLow.h.
@@ -184,7 +184,7 @@The ZonePolicyBroker::deltaMinutes() method knows how to convert this field into minutes.
-Definition at line 165 of file ZoneInfoLow.h.
+Definition at line 183 of file ZoneInfoLow.h.
@@ -205,7 +205,7 @@Definition at line 136 of file ZoneInfoLow.h.
@@ -232,7 +232,7 @@Definition at line 197 of file ZoneInfoLow.h.
@@ -253,7 +253,7 @@Definition at line 154 of file ZoneInfoLow.h.
@@ -277,7 +277,7 @@Definition at line 148 of file ZoneInfoLow.h.
diff --git a/docs/html/structace__time_1_1zoneinfomid_1_1ZoneContext-members.html b/docs/html/structace__time_1_1zoneinfomid_1_1ZoneContext-members.html index beefa95da..5b633fc5f 100644 --- a/docs/html/structace__time_1_1zoneinfomid_1_1ZoneContext-members.html +++ b/docs/html/structace__time_1_1zoneinfomid_1_1ZoneContext-members.html @@ -22,7 +22,7 @@