- From: Kay, Michael <Michael.Kay@softwareag.com>
- Date: Thu, 2 Oct 2003 13:32:39 +0200
- To: public-qt-comments@w3.org
- Message-ID: <DFF2AC9E3583D511A21F0008C7E62106073DD17F@daemsg02.software-ag.de>
Xavier Franc, in message
http://lists.w3.org/Archives/Public/public-qt-comments/2003Sep/0124.html
suggested that the date/time component extraction functions (for example,
get-hours-from-dateTime()) should return components of the localized time,
rather than the normalized time.
(Terminology: localized time = the time in the timezone represented by the
timezone component of the value; normalized time = the same instant of time
represented in timezone UTC)
On reflection, I'm inclined to agree with Xavier: I think we have got this
wrong. The date/time is presented in localized form when converting it to a
string, and when using the XSLT format-dateTime() family of functions. I
think it will be less confusing if we consistently present date/time values
in the localized form, and require users to use adjust-X-to-timezone if they
want something different.
Currently, if you want the components of the localized value, you have to
call adjust-dateTime-to-timezone() with () as the second argument, and then
call get-hours-from-dateTime.
With this change, a user who wanted components of the normalized value would
use adjust-dateTime-to-timezone() to adjust the timezone to UTC, and then
extract the component values.
Specifically (in XQuery syntax):
let $utc := xdt:dayTimeDuration("PT0H"),
$ndt := adjust-dateTime-to-timezone($in, $utc) return
get-hours-from-dateTime($ndt)
We might also want to consider changing the default for the second argument
of adjust-X-to-timezone() so it adjusts to UTC, since adjusting to the local
timezone can easily be achieved by supplying implicit-timezone() as the
second parameter. Alternatively, if my proposal on durations is accepted,
then adjust-dateTime-to-timezone($in, 0) will return the normalized value.
Michael Kay
Received on Thursday, 2 October 2003 07:35:15 UTC