Boost C++ Libraries: Ticket #605: Support different DST rules in timezone db based on years https://svn.boost.org/trac10/ticket/605 <pre class="wiki">The boost time library supports processing of the timezone database file as a .csv, with one entry per time zone, such as "America/New_York". However, in 2007, the daylight savings time rules will change. The contents of the csv need to change, to incorporate a range of effective years. Since DST is a spring and fall event (in both north and south hemispheres) only a year need be recorded. I suggest adding two values at the beginning of the line, (as one field in the form nnnn-nnnn) for the low effective-year and high effective-year, as 4-digit values. Let 0000 be used for "all previous years" and 9999 be used for all subsequent years. [If the '-' separator is a problem, ':' could be used instead.] Then, the change in 2007 can be recorded as two lines: "2007-9999","America/New_York", ... "0000-2006","America/New_York", ... Lines unaffected by the change would have "0000-9999" as the first field. </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/605 Trac 1.4.3 quatras Mon, 24 Apr 2006 16:15:46 GMT <link>https://svn.boost.org/trac10/ticket/605#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/605#comment:1</guid> <description> <pre class="wiki">Logged In: YES user_id=994937 It might be easier, in terms of sorting the .csv file, to combine the effective year range with the zone name, such as: "America/New_York:0000-2006", ... This would have the advantage of (a) keeping all entries for the same zone together, (b) not adding a new column to the table, and (c) not impacting time zones whose rules do not change. </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>quatras</dc:creator> <pubDate>Fri, 28 Apr 2006 19:53:50 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/605#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/605#comment:2</guid> <description> <pre class="wiki">Logged In: YES user_id=994937 After further thought, I believe a better way to do would be to add a code at the end of the ID string that identifies where the timezone is located, in general terms, so that a secondary table can be checked for year ranges. This has the advantage of requiring only one entry instead of multiples. In the New York example, the string would become "America/New_York;US". The lookup routines would have to stop the comparison at the ';'. Then, the "US" value would be used to look up US rules for the year in question. I would call the string "US" a 'group' code, to be followed by a 'region' code. For example, Hawaii has no DST; its code could be ";US/HI". The European Union has common DST handling, so the string for Paris would be "Europe/Paris;EU/FR". The other major 'group' is Canada. A sample timezone file with these values is attached. </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>Daryle Walker</dc:creator> <pubDate>Fri, 03 Aug 2007 12:05:23 GMT</pubDate> <title>component changed; severity set https://svn.boost.org/trac10/ticket/605#comment:3 https://svn.boost.org/trac10/ticket/605#comment:3 <ul> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">date_time</span> </li> <li><strong>severity</strong> → <span class="trac-field-new">Problem</span> </li> </ul> Ticket Katie Chan Sun, 28 Nov 2010 06:27:44 GMT type, summary changed https://svn.boost.org/trac10/ticket/605#comment:4 https://svn.boost.org/trac10/ticket/605#comment:4 <ul> <li><strong>type</strong> <span class="trac-field-old">Support Requests</span> → <span class="trac-field-new">Feature Requests</span> </li> <li><strong>summary</strong> <span class="trac-field-old">support new 2007 DST rules for timezone db</span> → <span class="trac-field-new">Support different DST rules in timezone db based on years</span> </li> </ul> Ticket