<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Sean,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I'm sure I'm stepping on a mine field here but I'll give it a go.  A date without a time should not have a meaningful timezone offset. If for some reason the implementation requires an offset it should have some meaningless offset added.  It does give you the local timezone which may be of some value to dates although why is a mystery to me. Unless you have a time to go with it it seems meaningless.  Anyway assuming there is a value to an offset on a date Note that </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">TimeSpan >> asDate </div><div class="gmail_default" style="font-size:small">    ^start asDate.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This makes sense to me because it just sets the time offset to midnight.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">start on TimeSpan and Date is a DateAndTime</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">DateAndTime >> asDate<br>    ^ Date starting: self<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Date class >> starting: aDateAndTime<br>    ^super starting: (aDateAndTime midnight) duration: (Duration days: 1)<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Date on the other hand just returns self.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">if </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Date >> asDate </div><div class="gmail_default" style="font-size:small">    ^start asDate, </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">like TimeSpan does then you could recreate the dates as you go and come closer to fixing your problem by doing </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">aDate asDate = '1/1/1901' asDate.  Now the error window is much much smaller because it still matters when asDate is performed.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Another fix is to just compare what you are actually concerned about.  </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">aDate yyyymmdd = '1/1/1901' asDate yyyymmdd</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Still I'm not sure there is a value in having the offset and maybe dates should just be dates. :)</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">All the best,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Ron Teitelbaum</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 4, 2019 at 12:52 PM Sean P. DeNigris <<a href="mailto:sean@clipperadams.com">sean@clipperadams.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Did the recent changes to Squeak's Date/Time handling (or any 3rd party lib)<br>
ever solve the following longstanding Chronology bug:<br>
<br>
>Consider this thought experiment: <br>
> At 11:59pm before DST changes, eval aDate := '1/1/1901' asDate. <br>
> Now, wait two minutes and at 12:01am eval self assert: '1/1/1901' asDate =<br>
> aDate and… whammo, an exception! <br>
> The "different" offsets render equal dates unequal depending on when the<br>
> objects were created. <br>
> The fact that the offset is the one active at object creation is the key<br>
> error, because it should be the offset active when the date occurred.<br>
<br>
<br>
<br>
-----<br>
Cheers,<br>
Sean<br>
--<br>
Sent from: <a href="http://forum.world.st/Squeak-Dev-f45488.html" rel="noreferrer" target="_blank">http://forum.world.st/Squeak-Dev-f45488.html</a><br>
<br>
</blockquote></div>