| |
| The csv file containing the zone_specs used by the |
| boost::local_time::tz_database is intended to be customized by the |
| library user. When customizing this file (or creating your own) the |
| file must follow a specific format. |
| |
| This first line is expected to contain column headings and is therefore |
| not processed by the tz_database. |
| |
| Each record (line) must have eleven fields. Some of those fields can |
| be empty. Every field (even empty ones) must be enclosed in double-quotes. |
| Ex: |
| "America/Phoenix" <- string enclosed in quotes |
| "" <- empty field |
| |
| Some fields represent a length of time. The format of these fields must be: |
| "{+|-}hh:mm[:ss]" <- length-of-time format |
| Where the plus or minus is mandatory and the seconds are optional. |
| |
| Since some time zones do not use daylight savings it is not always necessary |
| for every field in a zone_spec to contain a value. All zone_specs must have |
| at least ID and GMT offset. Zones that use daylight savings must have all |
| fields filled except: STD ABBR, STD NAME, DST NAME. You should take note |
| that DST ABBR is mandatory for zones that use daylight savings (see field |
| descriptions for further details). |
| |
| |
| ********* Fields and their description/details ********* |
| |
| * ID |
| Contains the identifying string for the zone_spec. Any string will |
| do as long as it's unique. No two ID's can be the same. |
| |
| * STD ABBR |
| * STD NAME |
| * DST ABBR |
| * DST NAME |
| These four are all the names and abbreviations used by the time |
| zone being described. While any string will do in these fields, |
| care should be taken. These fields hold the strings that will be |
| used in the output of many of the local_time classes. |
| Ex: |
| time_zone nyc = tz_db.time_zone_from_region("America/New_York"); |
| local_time ny_time(date(2004, Aug, 30), IS_DST, nyc); |
| cout << ny_time.to_long_string() << endl; |
| // 2004-Aug-30 00:00:00 Eastern Daylight Time |
| cout << ny_time.to_short_string() << endl; |
| // 2004-Aug-30 00:00:00 EDT |
| |
| NOTE: The exact format/function names may vary - see local_time |
| documentation for further details. |
| |
| * GMT offset |
| This is the number of hours added to utc to get the local time |
| before any daylight savings adjustments are made. Some examples |
| are: America/New_York offset -5 hours, & Africa/Cairo offset +2 hours. |
| The format must follow the length-of-time format described above. |
| |
| * DST adjustment |
| The amount of time added to gmt_offset when daylight savings is in |
| effect. The format must follow the length-of-time format described |
| above. |
| |
| ##################################################################### |
| ##### TODO: more rule capabilities are needed - this portion of ##### |
| ##### the tz_database is incomplete ##### |
| ##################################################################### |
| * DST Start Date rule |
| This is a specially formatted string that describes the day of year |
| in which the transition take place. It holds three fields of it's own, |
| separated by semicolons. |
| * The first field indicates the "nth" weekday of the month. The |
| possible values are: 1 (first), 2 (second), 3 (third), |
| 4 (fourth), 5 (fifth), and -1 (last). |
| * The second field indicates the day-of-week from 0-6 (Sun=0). |
| * The third field indicates the month from 1-12 (Jan=1). |
| |
| Examples are: "-1;5;9"="Last Friday of September", |
| "2;1;3"="Second Monday of March" |
| |
| * Start time |
| Start time is the number of hours past midnight, on the day of the |
| start transition, the transition takes place. More simply put, the |
| time of day the transition is made (in 24 hours format). The format |
| must follow the length-of-time format described above with the |
| exception that it must always be positive. |
| |
| * DST End date rule |
| See DST Start date rule. The difference here is this is the day |
| daylight savings ends (transition to STD). |
| * End time |
| Same as Start time. |