Le 3 juin 2015 17:05, "Sven Van Caekenberghe" <[email protected]> a écrit :
>
>
> > On 03 Jun 2015, at 16:57, Ben Coman <[email protected]> wrote:
> >
> > On Wed, Jun 3, 2015 at 8:36 PM, Sven Van Caekenberghe <[email protected]>
wrote:
> >>
> >>> On 03 Jun 2015, at 04:20, Esteban A. Maringolo <[email protected]>
wrote:
> >>>
> >>> I'm debugging the PostgresV3 driver for GLORP, and among other test
> >>> failures, there is a kind that particularly bugs me: two identical
> >>> dates do not match, the reason? The internal "start" of aDate
> >>> (Timespan) is a DateAndTime, and as such has a timezone offset.
> >>>
> >>> Is this conceptually right?
> >>>
> >>> Esteban A. Maringolo
> >>
> >> Yes, it is bit annoying and weird, but it all does make sense as well.
> >
> >> The concept of a date cannot be seen independent from a timezone (day
transitions are different for you than for me, new year starts at different
moments depending on where you live).
> >> Defining a Date as the timespan of one day starting at a specific
moment in time is correct.
> >
> > I've observed several of date/time discussions that I didn't really
> > follow all the details, but my first thought here is that Date, Time,
> > and DateAndTime are three separate concepts.  Shouldn't timezones only
> > affect comparing dates if you are calculating the hours between dates?
> > Adding the concept of "starting at a specific moment in time" would
> > seem to turn a Date into a DateAndTime, which is the point where
> > timezones should have an impact.
>
> Currently: Date is a Timespan of 24h starting at a specific, universally
unique point in time (a DateAndTime). You can ask it things like when did
you begin, end, do you contain t.
>
> Other, more abstract notions of a Date are possible, of course, but that
is not what we have.
>
> > For example, if you are reading a date "dd/mm/yyyy" from some database
> > field, what timezone do you assign?
>
> That is indeed the (original) problem.
>
> But even dd/mm/yyyy in some random DB or somewhere on the internet
implies a timezone, else it does not make (enough/total) sense.
>
> Again, your date today is not equal to mine, at some point in time we are
in different days, it is that simple.
>
> > cheers -ben
> >
> >> One thing you could try is to make the starting time UTC, a bit like
> >>
> >>  Date today translateToUTC.
> >>
> >>  DateAndTime now asUTC asDate.
> >>
> >> But I am not sure how much of your problems this would solve.

I do this:

localTimeZoneToRestore := DateAndTime localTimeZone.

DateAndTime localTimeZone: (TimeZone abbreviated: 'UTC').

"Do stuff"

time := DateAndTime midnight.

DateAndTime localTimeZone: TimeZone default.


Phil



> >>
> >> Sven
>
>
>

Reply via email to