xquery函数,用于根据日期时间值将日期时间值从EST转换为UCT,而不是根据当前日期

时间:2017-03-30 13:11:49

标签: xquery

我正在从EST转换为UTC。我需要如下结果:如果dateTime通过的是2月9日 - 2017年11月11日,那么UTC返回应该是2月9日至2017年16月16日,不管我何时执行xquery。如果我使用fn:adjust-dateTime-to-timezone那么当我在夏令时之前执行xquery时,结果是Feb-09-2017 16:30:00(增加5小时这是正确的)然而如果我在夏令时之后(即3月12日之后)运行相同的查询,然后响应变为Feb-09-2017 15:30:00(增加4小时)。

1 个答案:

答案 0 :(得分:1)

XPath / XSLT / XQuery日期/时间系统只知道数字时区偏移,而不是民事/地理/政治惯例。所以它理解-05:00,但不是EST。要进行此转换,您需要访问外部信息。

如果您在撒克逊有一个扩展函数saxon:in-summer-time(dateTime, civilTimeZone),它会告诉您是否处于夏令时,例如saxon:in-summer-time(current-dateTime(), 'America/New_York')返回true,这样您就可以调整调用时使用的位移{ {1}}。