XSLT将UTC转换为tz时区

XSLT将UTC转换为tz时区,xslt,Xslt,我有以下变量: <xsl:variable name="time"> <xsl:value-of select="'2020-12-26T17:33:11Z'"/> </xsl:variable> <xsl:variable name="timeZone"> <xsl:value-of select="'America/Los_Angeles'&q

我有以下变量:

<xsl:variable name="time">
 <xsl:value-of select="'2020-12-26T17:33:11Z'"/>
</xsl:variable>


  <xsl:variable name="timeZone">
        <xsl:value-of select="'America/Los_Angeles'" />
    </xsl:variable>

可变时间是UTC,我想将其转换为本地时区。我正在使用以下内容,但不起作用:

<xsl:value-of select="adjust-dateTime-to-timezone($time), xs:dayTimeDuration($timeZone))"/>


我的预期输出是:
2020-12-26T09:33:11Z

XSLT/XPath中几乎所有的日期/时间/时区功能都基于绝对数字时区偏移量,如-05:00,而不是基于CET或America/Los_Angeles等民用时区。一个例外是format-dateTime(),它设计用于格式化数据以供人类使用。格式化-dateTime()的第五个参数是“place”:XPath 3.1说:

如果$place参数以IANA时区的形式提供 实现识别的名称,然后是日期或时间 被格式化的时间将调整为该时间段中适用的时区偏移量 时区。例如,如果xs:dateTime值为2010-02-15T12:00:00Z 格式为$place参数设置为America/New_York,然后 输出将与值2010-02-15T07:00:00-05:00相同 提供。此调整将夏令时考虑在内 在可能的情况下;如果所述日期在夏令时 在纽约的时间,然后将其调整为时区偏移-PT4H,而不是 比-PT5H。只能使用夏令时进行调整 其中值包括日期,且日期在 时区数据库覆盖的范围


注意,这在XPath3.x中是新的;2.0规范只允许使用国家代码,其含义更为模糊。

函数
格式日期
格式日期时间
具有位置参数,您可以在其中传递时区的字符串,例如
格式日期时间(xs:dateTime('2020-12-26T17:33:11Z'),“[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01],“en”,(),“America/Los_Angeles”)
如果支持,则给出
2020-12-26T09:33:11