[squeak-dev] A UTC based implementation of DateAndTime
David T. Lewis
lewis at mail.msen.com
Mon May 26 17:54:17 UTC 2014
On Mon, May 26, 2014 at 05:29:19PM +0200, Bert Freudenberg wrote:
> On 26.05.2014, at 17:16, David T. Lewis <lewis at mail.msen.com> wrote:
> > On Mon, May 26, 2014 at 10:48:16AM -0400, Louis LaBrunda wrote:
> >>
> >> May I respectfully ask why localOffsetSeconds (to represent the local time
> >> zone offset) is needed? It seems to me a UTC time is enough. Is there
> >> really a need for the timezone offset the instance was created in? Does
> >> every DateAndTime instance need to carry this offset around with it? I
> >> would think the offset is only needed if one wants to display a date/time
> >> as a local value and then one could get the local offset from the VM or a
> >> program setting the user had previously supplied regardless of where the
> >> computer was setup to run. I guess there might be some historic interest
> >> as to the timezone an instances (or many instances) was created in but one
> >> could just keep that as a separate value.
> >
> > Hi Lou,
> >
> > Good question. In fact, one of the reasons I like the UTC implementation is
> > that it helps clarify the two main responsibilities of DateAndTime. One is
> > to represent time as a magnitude (for duration calculation, etc). The other
> > is to display time in the frame of reference of a local time zone. It is not
> > at all clear to me that those two responsibilies belong in the same class.
> >
> > Dave
>
> We need to be able to distinguish between local and universal time. It would be rather inconvenient if asking a DateAndTime for e.g. the hour would not be made to answer the local hour. Arguably the local time offset could be moved to a subclass, but having a single DateAndTime class is appealing for simplicity reasons, too.
>
One thing that seemed awkward to me was the question of how to implement #=. I
chose to let it be a comparison of just the utcMicroseconds magnitude, ignoring
the localOffsetSeconds. That may be the wrong thing to do, although if I think
about a DateAndTime as a magnitude, I expect that it should be true that one
instance is "greater than or: [equal to]" another when utcMicroseconds are equal,
regardless of the local offset.
Dave
More information about the Squeak-dev
mailing list
|