diff --git a/tz.html b/tz.html index efe859b..c362f4d 100644 --- a/tz.html +++ b/tz.html @@ -26,7 +26,7 @@

Howard E. Hinnant
-2017-04-01
+2017-06-04

Time Zone Database Parser

@@ -801,6 +801,27 @@ conversions among time zones). But it represents all of the data, and hides none of it.

+

+If compiled with -DUSE_OS_TZDB some of the information above will be missing: +

+ + +
 const TZ_DB& get_tzdb();
 
@@ -922,6 +943,10 @@ it always does when AUTO_DOWNLOAD == 0), all outstanding Throws: std::runtime_error if for any reason a reference can not be returned to a valid TZ_DB.

+ +

+Remarks: Not available with USE_OS_TZDB == 1. +

@@ -953,6 +978,10 @@ such as
 xdg-user-dirs whose
 result can be passed directly to set_install.
 

+ +

+Remarks: Not available with USE_OS_TZDB == 1. +

@@ -970,6 +999,10 @@ defaults to 1. This is because everywhere but Windows, but it is available for Windows.

+

+None of these are available with USE_OS_TZDB == 1. +

+

[Note: Even with AUTO_DOWNLOAD == 1, there are no thread-safety issues with this library unless one of the following functions are explicitly @@ -1251,6 +1284,15 @@ such information is to query the time_zone with a an sys_info except that it is guaranteed not to be in the range [begin, end) (if save != 0min for this sys_info).

+ +

+When compiled with USE_OS_TZDB == 1, the underlying database collapses this +information down to a bool which is fase when daylight saving is not in +effect and true when it is. When USE_OS_TZDB == 1, the save +field will be 0min when daylight saving is not in effect and +1min when daylight saving is in effect. +

+

The abbrev field indicates the current abbreviation used for the associated time_zone and time_point. Abbreviations @@ -2074,6 +2116,12 @@ account, utc_clock and its associated time_point, in performing those conversions.

+

+When compiled with USE_OS_TZDB == 1, some platforms do not support leap +second information. When this is the case, utc_clock will not exist and +MISSING_LEAP_SECONDS == 1. +

+
 static utc_clock::time_point utc_clock::now() noexcept;
 
@@ -2226,6 +2274,12 @@ With each leap second, the offset from utc_time grows by another second.

+

+When compiled with USE_OS_TZDB == 1, some platforms do not support leap +second information. When this is the case, tai_clock will not exist and +MISSING_LEAP_SECONDS == 1. +

+
 static tai_clock::time_point tai_clock::now() noexcept;
 
@@ -2367,6 +2421,12 @@ is 1980-01-06 and was equivalent to UTC at that time. If drifts ahead of UTC with each inserted leap second. It is always exactly 19s behind TAI.

+

+When compiled with USE_OS_TZDB == 1, some platforms do not support leap +second information. When this is the case, gps_clock will not exist and +MISSING_LEAP_SECONDS == 1. +

+
 static gps_clock::time_point gps_clock::now() noexcept;
 
@@ -2586,6 +2646,13 @@ with the member function date() and that will be the date of the le insertion. leap is equality and less-than comparable, both with itself, and with sys_time<Duration>.

+ +

+When compiled with USE_OS_TZDB == 1, some platforms do not support leap +second information. When this is the case, leap will not exist and +MISSING_LEAP_SECONDS == 1. +

+

link

@@ -2616,6 +2683,10 @@ name is name(). The name of the time_zone for which t an alternative name is target(). links will be constructed for you when the time zone database is initialized.

+ +

+When compiled with USE_OS_TZDB == 1, link will not exist. +

Installation

@@ -2669,6 +2740,10 @@ If specified, "/tzdata" will be appended to whatever you supply Warning: When coupled with AUTO_DOWNLOAD=1, this will overwrite everthing at INSTALL/tzdata if it already exists. Set with care.

+

+When compiling with USE_OS_TZDB == 1 INSTALL can not be used. +The zic-compiled time zone database will be wherever your OS installed it. +

HAS_REMOTE_API
@@ -2700,6 +2775,10 @@ However one can download it for Windows.
 -DHAS_REMOTE_API=0
 
+

+When compiling with USE_OS_TZDB == 1 HAS_REMOTE_API can not be +enabled. You will be using whatever zic-compiled database your OS supplies. +

AUTO_DOWNLOAD
@@ -2734,6 +2813,40 @@ must be 1, else a compile-time error will be emitted. Warning: This will overwrite everthing at INSTALL/tzdata if it already exists.

+

+When compiling with USE_OS_TZDB == 1 AUTO_DOWNLOAD can not be +enabled. You will be using whatever zic-compiled database your OS supplies. +

+ + +
USE_OS_TZDB
+
+

+If USE_OS_TZDB is 1 then this library will use the zic-compiled +time zone database provided by your OS. This option relieves you of having to install the +IANA time zone database, either manually, or automatically with +AUTO_DOWNLOAD. This option is not available on Windows. +

+

+The OS-supplied database may contain a subset of the information available when using the +IANA text-file database. For example on Apple platforms there is no leap second data +available, and the time zone transition points are limited to the range of 1901-12-13 +20:45:52 to 2038-01-19 03:14:07. The library continues to give results outside this +range, but the offsets may not be the same as when using the text-file IANA database. In +extreme cases, the reported local time can be off by nearly a day (e.g. America/Adak, +prior to 1867-10-17). This is caused (for example) by some regions "jumping" the +international date line in the 1800's. Additionally the IANA time zone database version +may not be available. If unavailable, the version will be "unknown". +

+

+Default: 0. +

+

+Example: Enable the use of the OS-supplied time zone database: +

+
+-DUSE_OS_TZDB=1
+
USE_SHELL_API
@@ -2792,6 +2905,15 @@ http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml int mingw users: -lpthread is required.

+

Linux specific:

+ +

+You may have to use -lpthread. If you're getting a mysterious crash on first +access to the database, it is likely that you aren't linking to the pthread +library. The pthread library is used to assure that that library +initialization is thread safe in a multithreaded environment. +

+

iOS specific: