KDateTime: new revised version

Nicolas Goutte nicolasg at snafu.de
Sun Nov 27 10:28:25 GMT 2005


On Sunday 27 November 2005 10:41, Shaheed wrote:
> On Saturday 26 November 2005 17:24, Nicolas Goutte wrote:
> > So to start again the discussion on a clean base.
>
> Heh. Before I saw your note, I was worrying about restarting this thread! I
> also have a new idea for your consideration.
>
> First, let's make the working assumption that "1-Jan-2006 -0500" does in
> fact specify a first-class timezone (in the sense of a KTimezone). What
> does that mean? To me, this suggests either that:
>

> - alongside the KTzfile* implementation of a system timezone we could have
> a KRfc2822* implementation

If we have to choose, then I think that this is clearer. (Even if I do not 
like the RFC2822 part in the class name, as time offsets are not at all 
RFC2822-specific.)

>
> - or, we could *add* to the tzfile implementation of "Region/Locality"
> style names, a set of "RFC2822/offset" names.

We would need 24 * 60 pseudo-timezones. That is perhaps a little too much. 

>
> In both cases, the implication is that the toString()/fromString() methods
> in KTimeDate would be delegated to an appropriate KTimezone subclass using
> a virtual method.
>
> There are pros and cons to both approaches. The former allows a clean
> separation between the two types of timezone with well-defined semantics
> for each. KOrganizer would use one, KBabel the other. 

> But any conversion
> between them would require application-specific thought/implementation *if
> such conversion is even needed*.

Conversion in the direction time offset to named timezone are going to be 
complex, whatever the implementation of KDateTime. So probably such a 
conversion should be in a special class.

But I agree with you that somebody should come up with a useful case where it 
is needed.

(As for the other direction, KDateTime will need it often for toString but it 
probably does not need such a conversion in a rather formal way.)

>
> The latter would allow apps to easily convert between the two, but would
> imply that different entries from different sources would not always have
> the same info

> (since the RFC2822 entries would not, for example, have
> meaningful longitude values).

For longitudes, we can use the time offset. We know that UTC+0 is at 0°, 
UTC+12 at 180° East and UTC-12 at 180° West.

So we would use a formula like
longitude = offset * 180 / 12
with the offset in hours.

So the longitudes would be meaningful in a mathematical sence.

>
(...)

Have a nice day!





More information about the kde-core-devel mailing list