On Mon, 13 Jan 2003 13:55:17 -0600 (CST), [EMAIL PROTECTED] wrote:
>
>> So, this sounds like something very high level, which shouldn't be
>> considered part of the base object. But.. it is needed for really
>> low-level operations, like ->add(). For example:
>>
>> 19700328T233000 + 4 hours = ??
>>
>> You'd think 19700329T033000. And you'd be right most of the time,
>> but not if that time was a Europe/Amsterdam time. Then, it'd
>> be 19700329T043000.
>
>The base object will need to _have_ a DateTime::TimeZone object.  It will
>not _be_ one.
>
>> So, I think we need to either put all of this inside the base object,
>> or make the base object do UTC only.
>
>The base object will probably do UTC only for all math and so on, and the
>internal representation should probably be fixed to UTC.
>
>Then the data-returning methods can adjust the returned value based on the
>timezone object that the base object has.

The base object should have the option of not being tied to any
particular timezone, even UTC, so that the data-returning methods do
no adjustment.  For instance, if I take my wife out to dinner at 7PM
on our anniversary every year, I do so at that local time whether we
are in Seattle or Baltimore.  One of the flaws of Date::ICal has been
that it has a particular timezone and can't represent this kind of
date (pun intended).  The iCalendar spec calls this a "floating" time
and differentiates it from a UTC time or a time w/timezone (or a date
without a time).

Reply via email to