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
。