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

xquery函数,用于根据日期时间值而不是根据当前日期将日期时间值从EST转换为UCT,xquery,Xquery,我正在从东部标准时间转换为UTC标准时间。我需要如下结果:如果传递的日期时间为2017年2月9日11:30:00,则UTC返回值应为2017年2月9日16:30:00,无论何时执行xquery。如果我使用fn:adjust dateTime to timezone,那么当我在夏令时之前执行xquery时,结果是2017年2月9日16:30:00加上5个小时,这是正确的,但是如果我在夏令时之后运行相同的查询,即3月12日之后,则响应变为2017年2月9日15:30:00加上4个小时 XPath/X

我正在从东部标准时间转换为UTC标准时间。我需要如下结果:如果传递的日期时间为2017年2月9日11:30:00,则UTC返回值应为2017年2月9日16:30:00,无论何时执行xquery。如果我使用fn:adjust dateTime to timezone,那么当我在夏令时之前执行xquery时,结果是2017年2月9日16:30:00加上5个小时,这是正确的,但是如果我在夏令时之后运行相同的查询,即3月12日之后,则响应变为2017年2月9日15:30:00加上4个小时

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

如果您在Saxon,有一个扩展函数Saxon:in summer timedateTime,civilTimeZone,它会告诉您是否在夏令时,例如Saxon:in summer timecurrent dateTime,“America/New_York”返回true,使您能够调整调用adjust dateTime时使用的位移