rfc:datetime_and_daylight_saving_time

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
rfc:datetime_and_daylight_saving_time [2011/07/20 16:35] – created danielcrfc:datetime_and_daylight_saving_time [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Request for Comments: DateTime and Daylight Saving Time Transitions ====== ====== Request for Comments: DateTime and Daylight Saving Time Transitions ======
-  * Version: 0.+  * Version: 1.0 
-  * Date: 2011-07-20 +  * Date: 2011-10-18 
-  * Author: Daniel Convissor <danielc@php.net> +  * Author: Daniel Convissor <danielc@php.net> with feedback from Derick Rethans <derick@php.net> 
-  * Status: Draft+  * Status: Accepted ([[rfc:datetime_and_daylight_saving_time:vote|voting results]])
   * First Published at: https://wiki.php.net/rfc/datetime_and_daylight_saving_time   * First Published at: https://wiki.php.net/rfc/datetime_and_daylight_saving_time
  
Line 17: Line 17:
 status seems wise. status seems wise.
  
-===== Time Zone for Sake of Discussion ===== 
-The ''America/New_York'' time zone will be used as the basis for this 
-discussion.  The Standard/Daylight transition in this zone happens at 
-2:00 am.  Other zones use different transition times. 
  
-==== Spring ==== +===== Zone Types ===== 
-<code> +PHP uses three different time zone data structures internally. 
-01:59:59 Standard Time + 
-second +Zone Type 3 objects contain the transition data required for proper 
-03:00:00 Daylight Saving Time (United States)+calculations around the Daylight/Standard time changes. 
 + 
 +Zone Type and 2 objects just know their offset from UTC, so addition and 
 +subtraction on them ignore crossing over Daylight/Standard thresholds. 
 + 
 +This RFC focuses on the changes needed to make Zone Type 3 work in a 
 +comprehensive manner.  Zone Type 1 and 2 behaviors are covered to clarify 
 +their expected behavior. 
 + 
 +==== Examples ==== 
 +Examples of how to create DateTime objects containing each zone type: 
 + 
 +=== Zone Type 1Offset === 
 +<code php> 
 +$d = new DateTime('2011-09-13 14:15:16 -0400');
 </code> </code>
  
-  * The hour of 2am gets skipped. +=== Zone Type 2: Abbreviation === 
-  * There are 23 hours on that Sunday. +<code php> 
-  * 2010-03-14+$d = new DateTime('2011-09-13 14:15:16 EDT'); 
 +</code>
  
-==== Fall ==== +=== Zone Type 3: ID === 
-<code> +<code php
-1:59:59 Daylight Saving Time (United States+$d = new DateTime('2011-09-13 14:15:16'); 
-+ 1 second +// or 
-1:00:00 Standard Time+$d new DateTime('2011-09-13 14:15:16', new DateTimeZone('America/New_York'));
 </code> </code>
  
-  * The hour of 1am gets replayed. + 
-  * There are 25 hours on that Sunday+===== Time Zone for Sake of Discussion ===== 
-  * 2010-11-07+The ''America/New_York'' time zone will be used for demonstration purposes. 
 +The Standard/Daylight transition in this zone happens at 
 +2:00 am.  The forward transition (in spring) jumps to 3:00 am, skipping 
 +over the hour of 2 am.  The backward transition (in fall) jumps back to 
 +1:00 am, repeating the hour of 1 am. 
 + 
 +Other time zone changes have different lengths of time and take effect 
 +at different days/times
  
 ===== Construction During Transitions ===== ===== Construction During Transitions =====
-==== Spring ====+==== Forward Transitions ====
 Times between ''2:00:00 am'' and ''2:59:59 am'' do not exist during the Times between ''2:00:00 am'' and ''2:59:59 am'' do not exist during the
-Spring transition.  Attempts to create such times should be rounded forward, +Forward Transitions transition.  Attempts to create such times should be 
-like PHP currently does when trying to create February 29th on a non-leap +rounded forward, like PHP currently does when trying to create February 29th 
-year.+on a non-leap year.
  
 <code php> <code php>
Line 59: Line 78:
 </code> </code>
  
-==== Fall ====+==== Backward Transitions ====
 PHP needs a means to create objects representing times during the hour PHP needs a means to create objects representing times during the hour
 repeated on the Daylight/Standard transition day repeated on the Daylight/Standard transition day
 (between ''1:00:00 am'' and ''1:59:59 am'' Standard Time). (between ''1:00:00 am'' and ''1:59:59 am'' Standard Time).
  
-This RFC proposes adding a third parameter to ''DateTime::__construct()''+This RFC proposes adjusting the time string parser to handle strings containing 
-''bool $is_daylight_saving_time''.  The default value would be NULL. +''DST'' and ''ST'' When ''DST'' or ''ST'' are not present, PHP will use 
-When NULL, PHP will use the current behavior, which uses the DST/ST +the current behavior, which uses the time zone offset in place at the 
-in place at the specified time and uses DST during the repeated hour in the +specified time and uses DST offset during the repeated hour during backward 
-fall.+transitions.
  
 Force Daylight Saving Time: Force Daylight Saving Time:
 <code php> <code php>
 date_default_timezone_set('America/New_York'); date_default_timezone_set('America/New_York');
-$date = new DateTime('2010-11-07 01:30:00', null, true);+$date = new DateTime('2010-11-07 01:30:00 DST');
 echo $date->format('Y-m-d H:i:s T') . "\n"; echo $date->format('Y-m-d H:i:s T') . "\n";
 // Expected: 2010-11-07 01:30:00 EDT // Expected: 2010-11-07 01:30:00 EDT
Line 81: Line 100:
 <code php> <code php>
 date_default_timezone_set('America/New_York'); date_default_timezone_set('America/New_York');
-$date = new DateTime('2010-11-07 01:30:00', null, false);+$date = new DateTime('2010-11-07 01:30:00 ST');
 echo $date->format('Y-m-d H:i:s T') . "\n"; echo $date->format('Y-m-d H:i:s T') . "\n";
 // Expected: 2010-11-07 01:30:00 EST // Expected: 2010-11-07 01:30:00 EST
Line 94: Line 113:
 </code> </code>
  
- +The ''ST'' or ''DST'' modifiers can only be used when specifying times 
-===== Construction During Other Times ===== +during the backward transition period.  Using the modifiers at other times 
-Attempts to create a Standard Time during Daylight Saving Time should be +will throw an exception in object-oriented style code while procedural 
-rolled forward to DST.  Attempts to create a Daylight Saving Time during +style code will return false without triggering errors.
-Standard Time should be rolled back to ST.+
  
  
 ===== Math ===== ===== Math =====
-==== Spring ==== +The date format used in this section is for display purposes only, does 
-^ Saturday ^ Sunday  ^ Diff ^ +not correspond to a PHP format, nor is intended to be parsed by PHP.
-| 04:30 S  | 04:30 D | 1D   | +
-| 04:30 S  | 03:30 D | 22H  | +
-| 04:30 S  | 01:30 S | 21H  | +
-| 01:30 S  | 01:30 S | 1D   | +
-The Transition Second ||| +
-| 01:59:59 S | 03:00:00 D | 1S |+
  
-<code php> +Reminder: the time zone in the examples is ''America/New_York''
-date_default_timezone_set('America/New_York'); +So "(ST)" represents Eastern Standard Time/EST/-0500 and "(DT)" 
-// Saturday, 23.5 hrs before DST transition +represents Eastern Daylight Time/EDT/-0400.
-$date = new DateTime('2010-03-13 02:30:00')+
-$date->add(new DateInterval('P1D')); +
-// Sunday, 2:30 doesn't exist, roll forward 1 hr +
-echo $date->format('Y-m-d H:i:s T'"\n"; +
-// Expected & Actual: 2010-03-14 03:30:00 EDT   +
-</code>+
  
-==== Fall ==== +The behaviors indicated here are covered by unit tests in ''ext/date/tests'': 
-Saturday Sunday  Diff  ^ +  * rfc-datetime_and_daylight_saving_time-type1.phpt 
-04:30  04:30 1D    +  * rfc-datetime_and_daylight_saving_time-type2.phpt 
-04:30  | 03:30 24H   | +  * rfc-datetime_and_daylight_saving_time-type3.phpt 
-04:30  02:30 23H   | + 
-04:30  01:30 22H   | +Each output line in the test files is prefixed with an identifier 
-04:30  01:30 21H   | +that corresponds to the ''phpt'' columns in the tables below. 
-01:30  01:30 1D    | + 
-01:30  01:30 1D 1H +Actual results for Zone Types 1 and 2 are shown as ''N/A'' for the moment. 
-The Transition Second ||| +All Zone Type 1 tests pass.  Zone Type 2 results are tainted by 
-01:59:59 01:00:00 1S |+[[https://bugs.php.net/bug.php?id=55253|Bug 55253]]. 
 + 
 +==== Forward Transitions ==== 
 +=== Zone Type 3 === 
 +== diff() == 
 +End Start ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-03-14T03:00:00''//(DT)// | ''2010-03-14T01:59:59''//(ST)// | PT0H0M1S | fd1 | PT1H0M1S | 
 +| ''2010-03-14T04:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P1DT0H   | fd2 | | 
 +| ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT22H  | fd3 | P0DT23H | 
 +| ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T04:30:00''//(ST)// | P0DT21H  | fd4 | | 
 +| ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T01:30:00''//(ST)// | P1DT0H   | fd5 | | 
 +| ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T03:30:00''//(ST)// | P1DT0H   | fd6 | | 
 +| ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T02:30:00''//(ST)// | P1DT1H   | fd7 | | 
 + 
 +== add() == 
 +Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-03-14T01:59:59''//(ST)// | PT1S  | ''2010-03-14T03:00:00''//(DT)// | fa1 | | 
 +| ''2010-03-13T04:30:00''//(ST)// | P1D   | ''2010-03-14T04:30:00''//(DT)// | fa2 | | 
 +| ''2010-03-13T04:30:00''//(ST)// | PT22H | ''2010-03-14T03:30:00''//(DT)// | fa3 | | 
 +| ''2010-03-13T04:30:00''//(ST)// | PT21H | ''2010-03-14T01:30:00''//(ST)// | fa4 | | 
 +| ''2010-03-13T01:30:00''//(ST)// | P1D   | ''2010-03-14T01:30:00''//(ST)// | fa5 | | 
 +| ''2010-03-13T02:30:00''//(ST)// | P1D   | ''2010-03-14T02:30:00''//(DT)// | fa6 | | 
 + 
 +== sub() == 
 +^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) 
 +''2010-03-14T03:00:00''//(DT)// | PT1S  | ''2010-03-14T01:59:59''//(ST)// | fs1 | ''2010-03-14T03:59:59''//(DT)//
 +| ''2010-03-14T04:30:00''//(DT)// | P1D   | ''2010-03-13T04:30:00''//(ST)// | fs2 | | 
 +| ''2010-03-14T03:30:00''//(DT)// | PT22H | ''2010-03-13T04:30:00''//(ST)// | fs3 | ''2010-03-13T05:30:00''//(ST)//
 +| ''2010-03-14T01:30:00''//(ST)// | PT21H | ''2010-03-13T04:30:00''//(ST)// | fs4 | | 
 +| ''2010-03-14T01:30:00''//(ST)// | P1D   | ''2010-03-13T01:30:00''//(ST)// | fs5 | | 
 +| ''2010-03-15T03:30:00''//(DT)// | P1D   | ''2010-03-14T03:30:00''//(DT)// | fs6 | | 
 +| ''2010-03-15T02:30:00''//(DT)// | P1D   | ''2010-03-14T03:30:00''//(DT)// | fs7 | | 
 + 
 +=== Zone Types 1 & 2 === 
 +== diff() == 
 +^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-03-14T03:00:00''//(DT)// | ''2010-03-14T01:59:59''//(ST)// | PT0H0M1S | fd1 | | 
 +| ''2010-03-14T04:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT23H  fd2 | | 
 +| ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT22H  | fd3 | | 
 +''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T04:30:00''//(ST)// | P0DT21H  fd4 | | 
 +| ''2010-03-14T01:30:00''//(ST)// ''2010-03-13T01:30:00''//(ST)// | P1DT0H   | fd5 | 
 +''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T03:30:00''//(ST)// | P0DT23H  fd6 | | 
 +| ''2010-03-14T03:30:00''//(DT)// ''2010-03-13T02:30:00''//(ST)// | P1DT0H   | fd7 | | 
 + 
 +== add() == 
 +^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +''2010-03-14T01:59:59''//(ST)// | PT1S  | ''2010-03-14T02:00:00''//(ST)// | fa1 | N/A | 
 +| ''2010-03-13T04:30:00''//(ST)// | P1D   | ''2010-03-14T04:30:00''//(ST)// | fa2 | N/A | 
 +| ''2010-03-13T04:30:00''//(ST)// | PT22H | ''2010-03-14T02:30:00''//(ST)// | fa3 | N/A | 
 +| ''2010-03-13T04:30:00''//(ST)// | PT21H | ''2010-03-14T01:30:00''//(ST)// | fa4 | N/A | 
 +| ''2010-03-13T01:30:00''//(ST)// | P1D   | ''2010-03-14T01:30:00''//(ST)// | fa5 | N/A | 
 +| ''2010-03-13T02:30:00''//(ST)// | P1D   | ''2010-03-14T02:30:00''//(ST)// | fa6 | N/A | 
 + 
 +== sub() == 
 +^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-03-14T03:00:00''//(DT)// | PT1S  ''2010-03-14T02:59:59''//(DT)// | fs1 | N/A | 
 +| ''2010-03-14T04:30:00''//(DT)// P1D   | ''2010-03-13T04:30:00''//(DT)// | fs2 | N/A 
 +''2010-03-14T03:30:00''//(DT)// | PT22H | ''2010-03-13T05:30:00''//(DT)// | fs3 | N/A | 
 +| ''2010-03-14T01:30:00''//(ST)// | PT21H | ''2010-03-13T04:30:00''//(ST)// | fs4 | N/A | 
 +| ''2010-03-14T01:30:00''//(ST)// | P1D   | ''2010-03-13T01:30:00''//(ST)// | fs5 | N/A | 
 +| ''2010-03-15T03:30:00''//(DT)// | P1D   | ''2010-03-14T03:30:00''//(DT)// | fs6 | N/A | 
 +| ''2010-03-15T02:30:00''//(DT)// | P1D   | ''2010-03-14T02:30:00''//(DT)// | fs7 | N/A | 
 + 
 +==== Backward Transitions ==== 
 +=== Zone Type 3 === 
 +== diff() == 
 +^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:00:00''//(ST)// | ''2010-11-07T01:59:59''//(DT)// | PT0H0M1S | bd1 | PT0H59M59S | 
 +| ''2010-11-07T04:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT0H   | bd2 | | 
 +| ''2010-11-07T03:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT24H  bd3 | P0DT23H | 
 +| ''2010-11-07T02:30:00''//(ST)// ''2010-11-06T04:30:00''//(DT)// | P0DT23H  | bd4 | P0DT22H | 
 +| ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT22H  | bd5 | P0DT21H | 
 +| ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T04:30:00''//(DT)// | P0DT21H  | bd6 | | 
 +| ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T01:30:00''//(DT)// | P1DT0H   | bd7 | 
 +''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T01:30:00''//(DT)// | P1DT1H   | bd8 | P1DT1H | 
 + 
 +== add() == 
 +^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:59:59''//(DT)// | PT1S   | ''2010-11-07T01:00:00''//(ST)// | ba1 | ''2010-11-07T01:00:00''//(ST)//
 +| ''2010-11-06T04:30:00''//(DT)// | P1D    | ''2010-11-07T04:30:00''//(ST)// | ba2 | | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT24H  ''2010-11-07T03:30:00''//(ST)// | ba3 | ''2010-11-07T04:30:00''//(ST)//
 +| ''2010-11-06T04:30:00''//(DT)// | PT23H  | ''2010-11-07T02:30:00''//(ST)// | ba4 | ''2010-11-07T03:30:00''//(ST)//
 +| ''2010-11-06T04:30:00''//(DT)// | PT22H  | ''2010-11-07T01:30:00''//(ST)// | ba5 | ''2010-11-07T02:30:00''//(ST)//
 +| ''2010-11-06T04:30:00''//(DT)// | PT21H  | ''2010-11-07T01:30:00''//(DT)// | ba6 | | 
 +| ''2010-11-06T01:30:00''//(DT)// P1D    | ''2010-11-07T01:30:00''//(DT)// | ba7 | 
 +''2010-11-06T01:30:00''//(DT)// | P1DT1H | ''2010-11-07T01:30:00''//(ST)// | ba8 | ''2010-11-07T02:30:00''//(ST)//
 +| ''2010-11-06T04:30:00''//(DT)// | PT25H  ''2010-11-07T04:30:00''//(ST)// ba9 | ''2010-11-07T05:30:00''//(ST)// 
 +''2010-11-06T03:30:00''//(DT)// P1D    | ''2010-11-07T03:30:00''//(ST)// | ba10| | 
 +''2010-11-06T02:30:00''//(DT)// | P1D    | ''2010-11-07T02:30:00''//(ST)// | ba11| | 
 + 
 +== sub() == 
 +^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:00:00''//(ST)// | PT1S   | ''2010-11-07T01:59:59''//(DT)// bs1 | ''2010-11-07T00:59:59''//(DT)//
 +| ''2010-11-07T04:30:00''//(ST)// | P1D    | ''2010-11-06T04:30:00''//(DT)// | bs2 | | 
 +| ''2010-11-07T03:30:00''//(ST)// | PT24H  | ''2010-11-06T04:30:00''//(DT)// | bs3 | ''2010-11-06T03:30:00''//(DT)//
 +| ''2010-11-07T02:30:00''//(ST)// | PT23H  | ''2010-11-06T04:30:00''//(DT)// | bs4 | ''2010-11-06T03:30:00''//(DT)//
 +| ''2010-11-07T01:30:00''//(ST)// | PT22H  | ''2010-11-06T04:30:00''//(DT)// | bs5 | ''2010-11-06T03:30:00''//(DT)//
 +| ''2010-11-07T01:30:00''//(DT)// | PT21H  | ''2010-11-06T04:30:00''//(DT)// | bs6 | | 
 +| ''2010-11-07T01:30:00''//(DT)// | P1D    | ''2010-11-06T01:30:00''//(DT)// | bs7 | | 
 +| ''2010-11-07T01:30:00''//(ST)// | P1DT1H | ''2010-11-06T00:30:00''//(DT)// | bs8 | | 
 +| ''2010-11-07T03:30:00''//(ST)// | P1D    | ''2010-11-06T03:30:00''//(DT)// | bs9 | | 
 +| ''2010-11-07T02:30:00''//(ST)// | P1D    | ''2010-11-06T02:30:00''//(DT)// | bs10 | | 
 + 
 +=== Zone Types 1 & 2 === 
 +== diff() == 
 +^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:00:00''//(ST)// | ''2010-11-07T01:59:59''//(DT)// | PT0H0M1S | bd1 | | 
 +| ''2010-11-07T04:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT1H   | bd2 | | 
 +| ''2010-11-07T03:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT0H   | bd3 | | 
 +| ''2010-11-07T02:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT23H  | bd4 | | 
 +| ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT22H  | bd5 | | 
 +| ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T04:30:00''//(DT)// | P0DT21H  | bd6 | | 
 +| ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T01:30:00''//(DT)// | P1DT0H   | bd7 | | 
 +| ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T01:30:00''//(DT)// | P1DT1H   | bd8 | | 
 + 
 +== add() == 
 +^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:59:59''//(DT)// | PT1S   | ''2010-11-07T02:00:00''//(DT)// | ba1 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | P1D    | ''2010-11-07T04:30:00''//(DT)// | ba2 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT24H  | ''2010-11-07T04:30:00''//(DT)// | ba3 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT23H  | ''2010-11-07T03:30:00''//(DT)// | ba4 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT22H  | ''2010-11-07T02:30:00''//(DT)// | ba5 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT21H  | ''2010-11-07T01:30:00''//(DT)// | ba6 | N/A | 
 +| ''2010-11-06T01:30:00''//(DT)// | P1D    | ''2010-11-07T01:30:00''//(DT)// | ba7 | N/A | 
 +| ''2010-11-06T01:30:00''//(DT)// | P1DT1H | ''2010-11-07T02:30:00''//(DT)// | ba8 | N/A | 
 +| ''2010-11-06T04:30:00''//(DT)// | PT25H  | ''2010-11-07T05:30:00''//(DT)// | ba9 | N/A | 
 +| ''2010-11-06T03:30:00''//(DT)// | P1D    | ''2010-11-07T03:30:00''//(DT)// | ba10| N/A | 
 +| ''2010-11-06T02:30:00''//(DT)// | P1D    | ''2010-11-07T02:30:00''//(DT)// | ba11| N/A | 
 + 
 +== sub() == 
 +^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ 
 +| ''2010-11-07T01:00:00''//(ST)// | PT1S   | ''2010-11-07T00:59:59''//(ST)// | bs1 | N/A | 
 +| ''2010-11-07T04:30:00''//(ST)// | P1D    | ''2010-11-06T04:30:00''//(ST)// | bs2 | N/A | 
 +| ''2010-11-07T03:30:00''//(ST)// | PT24H  | ''2010-11-06T03:30:00''//(ST)// | bs3 | N/A | 
 +| ''2010-11-07T02:30:00''//(ST)// | PT23H  | ''2010-11-06T03:30:00''//(ST)// | bs4 | N/A | 
 +| ''2010-11-07T01:30:00''//(ST)// | PT22H  | ''2010-11-06T03:30:00''//(ST)// | bs5 | N/A | 
 +| ''2010-11-07T01:30:00''//(DT)// | PT21H  | ''2010-11-06T04:30:00''//(DT)// | bs6 | N/A | 
 +| ''2010-11-07T01:30:00''//(DT)// | P1D    | ''2010-11-06T01:30:00''//(DT)// | bs7 | N/A | 
 +| ''2010-11-07T01:30:00''//(ST)// | P1DT1H | ''2010-11-06T00:30:00''//(ST)// | bs8 | N/A | 
 +| ''2010-11-07T03:30:00''//(ST)// | P1D    | ''2010-11-06T03:30:00''//(ST)// | bs9 | N/A | 
 +| ''2010-11-07T02:30:00''//(ST)// | P1D    | ''2010-11-06T02:30:00''//(ST)// | bs10 N/A |
  
  
 ===== Other Issues? ===== ===== Other Issues? =====
-If you know of other problems, please add them here or bring them to the +If you know of other problems, please bring them to the attention of the authors.
-attention of the authors.+
  
  
 ===== Changelog ===== ===== Changelog =====
- 
rfc/datetime_and_daylight_saving_time.1311179719.txt.gz · Last modified: 2017/09/22 13:28 (external edit)