This a recurring topic in the mailing list.

See:
http://forum.world.st/Interesting-Date-Time-Thread-on-Squeak-Dev-td4778652.html#a4778970

Or directly go to this https://www.w3.org/TR/timezone/

Pharo's Date and Time classes are incremental/offset based, whereas a
field based Date behaves more as "expected" in terms of adding
days/months/days/hours/etc.

The internal implementation might vary and there are going to be
tradeoffs, but IMO for scheduling solutions calendar based are better
suited.

Regards!


On 10/04/2018 11:13, Stephane Ducasse wrote:
> What is a field based date and  time?
>
> On Tue, Apr 10, 2018 at 1:32 PM, Esteban A. Maringolo
> <emaring...@gmail.com> wrote:
>> What is missing in the current Pharo image is a field based
>> Date/DateTime instead of an offset+duration one as it currently is.
>>
>> Why not use Chronos instead? AFAIR Chronos provides that.
>>
>> An alternative would be to implement a "Calendar" (as in
>> Java.util.Calendar [1]), that can exist in parallel with the existing
>> Date class.
>>
>> Regards,
>>
>> [1] https://developer.android.com/reference/java/util/Calendar.html
>>
>> On 10/04/2018 03:30, Stephane Ducasse wrote:
>>> Hi Paul
>>>
>>> I agree and instead of patching the current system I would start using
>>> TDD to design
>>> a new Date package.
>>>
>>> stef
>>>
>>> On Mon, Apr 9, 2018 at 8:42 PM, Paul DeBruicker <pdebr...@gmail.com> wrote:
>>>> I  think #= is a bad selector for Date and should be avoided when 
>>>> determining
>>>> whether something happens on a date, or whether two dates are the same.   
>>>> We
>>>> all know March 24th in London covers a different 24 hours than March 24th 
>>>> in
>>>> Hawaii but Date>>#= does not.
>>>>
>>>>
>>>>
>>>> I think whats needed are more descriptive selectors like
>>>>
>>>>
>>>> Date>>#isSameOnDateAs: aDateOrDateAndTime
>>>> Date>>#overlapsWithDate: aDate
>>>> DateAndTime>>#occursOnDate: aDate
>>>> DateAndTime>>#sameHMSButDifferentUTCIn: aTimeZoneKey
>>>> DateAndTime>>#sameUTCButDifferentHMSIn: aTimeZoneKey
>>>>
>>>> and change Date>>#= to #shouldNotImplement.
>>>>
>>>>
>>>> FWIW I also don't like #offset: as before you send it you know the timezone
>>>> and after you may let that knowledge be forgotten. Real offsets can change
>>>> as laws change.
>>>>
>>>>
>>>>
>>>> I think people are aware of this but if you have need for comparing dates &
>>>> times then you must use a library that accesses the regularly updated Olson
>>>> timezone database on your system and classes that respect time zones.  Time
>>>> zones are political, and legal definitions of offsets can change hours
>>>> before the DST transition dates & times.
>>>>
>>>>
>>>> I don't think it matters which default timezone you pick for the image if
>>>> you're not going to take them into account when doing comparisons.
>>>>
>>>>
>>>> Unfortunately there isn't a way to avoid this complexity until DST goes
>>>> away.
>>>>
>>>>
>>>> There's certainly flaws to how we currently do it and I think
>>>> TimeZoneDatabase and Chronos make good attempts to fix it.  I haven't 
>>>> looked
>>>> at Chalten but would guess its good too.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Sean P. DeNigris wrote
>>>>> I was bitten by this very annoying bug again. As most of us probably know
>>>>> due
>>>>> to the steady stream of confused ML posts in the past, the bug in summary
>>>>> is
>>>>> that we have an incomplete timezone implementation that doesn't properly
>>>>> take into account historical DST changes. This flares up without warning
>>>>> especially when DST toggles. I created a wiki page to document the
>>>>> situation: https://github.com/seandenigris/pharo/wiki/Time-Zone-Fiasco
>>>>>
>>>>> Here's an example blowup: at 11:59pm before DST changes, eval aDate :=
>>>>> '1/1/1901' asDate. Now, wait two minutes and at 12:01am eval self assert:
>>>>> '1/1/1901' asDate = aDate and… whammo, an exception! The "different"
>>>>> offsets
>>>>> render equal dates unequal depending on when the objects were created.
>>>>>
>>>>> The more I think about it, the more I think that we should just assume UTC
>>>>> for all Date[AndTime]s that don't explicitly specify an offset, rather
>>>>> than
>>>>> pretend to set an offset which is only sometimes correct. More advanced
>>>>> users can use one of the available libraries to get full timezone support.
>>>>> What do you think?
>>>>>
>>>>>
>>>>>
>>>>> -----
>>>>> Cheers,
>>>>> Sean
>>>>> --
>>>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>>>>
>> --
>> Esteban A. Maringolo
>>

-- 
Esteban A. Maringolo



Reply via email to