<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">I unfortunately have run into the same
      problem with my own product. I'm very interested in knowing as
      well how this should be interpretted.<br>
      <br>
      On 2013-10-02 19:29, <a class="moz-txt-link-abbreviated" href="mailto:yoshito_umaoka@us.ibm.com">yoshito_umaoka@us.ibm.com</a> wrote:<br>
    </div>
    <blockquote
cite="mid:OFD2F18303.C4323A39-ON85257BF8.007DBD19-85257BF8.00813F94@lotus.com"
      type="cite"><tt><font size="2">When I tried to import tzdata2013g
          into our project,
          I realized 2013g Morocco rule change revealed our tooling
          problem.</font></tt>
      <br>
      <br>
      <tt><font size="2">Our tool tries to extract a set of rules to be
          applied
          beyond year 2038, and expecting either no "max" rule or a pair
          of "max" rules. However, Africa/Casablanca with 2013g update
          introduced a case not fall into above - only a single "max"
          rule.</font></tt>
      <br>
      <br>
      <tt><font size="2">Of course, tzcode works fine and it's our
          tooling
          issue. My problem is how we should interpret the rule.</font></tt>
      <br>
      <br>
      <tt><font size="2">Below is a part of Morocco rules:</font></tt>
      <br>
      <br>
      <tt><font size="2">Rule        Morocco  
               2013        only
                 -        Jul
                   7        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2013        only
                 -        Aug
                  10        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2013        2035
                 -        Oct
                  lastSun 3:00        0
                 -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2014        2022
                 -        Mar
                  lastSun 2:00        1:00
                 S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2014        only
                 -        Jun
                  29        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2014        only
                 -        Jul
                  29        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2015        only
                 -        Jun
                  18        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2015        only
                 -        Jul
                  18        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2016        only
                 -        Jun
                   7        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2016        only
                 -        Jul
                   7        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2017        only
                 -        May
                  27        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2017        only
                 -        Jun
                  26        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2018        only
                 -        May
                  16        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2018        only
                 -        Jun
                  15        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2019        only
                 -        May
                   6        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2019        only
                 -        Jun
                   5        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2020        only
                 -        Apr
                  24        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2020        only
                 -        May
                  24        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2021        only
                 -        Apr
                  13        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2021        only
                 -        May
                  13        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2022        only
                 -        Apr
                   3        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2022        only
                 -        May
                   3        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2023        only
                 -        Apr
                  22        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2024        only
                 -        Apr
                  10        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2025        only
                 -        Mar
                  31        
          2:00        1:00        S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2026        max
                 -        Mar
                  lastSun 2:00        1:00
                 S</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2036        only
                 -        Oct
                  21        
          3:00        0        -</font></tt>
      <br>
      <tt><font size="2">Rule        Morocco  
               2037        only
                 -        Oct
                  11        
          3:00        0        -</font></tt>
      <br>
      <br>
      <br>
      <tt><font size="2">If I read above, the rule applicable 2038 and
          beyond
          is only </font></tt>
      <br>
      <br>
      <tt><font size="2">> Rule        Morocco
                 2026        max
                 -        Mar
                  lastSun 2:00        1:00
                 S</font></tt>
      <br>
      <br>
      <tt><font size="2">Therefore, if I read this as is,
          Africa/Casablanca
          will be permanent daylight saving time after 2038-03-28.</font></tt>
      <br>
      <br>
      <tt><font size="2">I know the tz database is trying to cover dates
          up
          to 2037 (max signed integer seconds). Also, rules used in far
          future are
          not really useful. But users like us really need to make a
          certain assumption
          for far future dates.</font></tt>
      <br>
      <br>
      <tt><font size="2">I'm actually not 100% sure if we can still use
          the
          tz database for year 2038 and beyond, or if the tz database
          has no support
          / desire for make it work beyond 2038. My comments below is
          based on the
          assumption that the tz database just set 2038 as the threshold
          for rule
          coverage, but not trying to introduce the hard barrier.</font></tt>
      <br>
      <br>
      <tt><font size="2">One thing I'm not comfortable is that the rules
          above
          will result permanent daylight saving time. If the max line
          rule were written
          like below -</font></tt>
      <br>
      <br>
      <tt><font size="2">Rule        Morocco  
               2026        2037
                 -        Mar
                  lastSun 2:00        1:00
                 S</font></tt>
      <br>
      <br>
      <tt><font size="2">it makes better sense to me. The rule above
          indicates
          the last transition is on 2037-10-11, then it will stay in
          standard time
          beyond 2038. This is perfectly equivalent to what 2013g
          defined until 2038.
          Only the difference is 2038-03-28 (out of signed 32bit integer
          seconds)
          and beyond.</font></tt>
      <br>
      <br>
      <tt><font size="2">I would like to ask the tz database
          coordinators to
          select rule line more friendly for users using the database
          for 2038 and
          beyond.</font></tt>
      <br>
      <br>
      <tt><font size="2">Thanks,</font></tt>
      <br>
      <tt><font size="2">Yoshito</font></tt>
      <br>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
 </pre>
  </body>
</html>