使用XSLT将dateand以XML格式转换为UTC时区

Zaa*_*Hai 3 xml xslt

我有一个XML文档,其日期为标准ISO 8601格式.像这样:


2011-11-29T04:15:22-08:00

我想使用XSLT将时间转换为以下格式的UTC和输出日期:


2011-11-29 12:15:22

怎么做到呢?

提前致谢.

Dim*_*hev 8

以下XPath 2.0表达式生成所需的字符串值:

  translate(
    string(
       adjust-dateTime-to-timezone(
          xs:dateTime('2011-11-29T04:15:22-08:00'),
          xs:dayTimeDuration('PT0H')
                              )
         ),
     'TZ',
     ' '
            )
Run Code Online (Sandbox Code Playgroud)

基于XSLT的验证:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
     <xsl:sequence select=
     "translate(
        string(
           adjust-dateTime-to-timezone(
              xs:dateTime('2011-11-29T04:15:22-08:00'),
              xs:dayTimeDuration('PT0H')
                                  )
             ),
         'TZ',
         ' '
                )
     "/>
 </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

当此转换应用于任何XML文档(未使用)时,将评估XPath表达式并输出此评估的结果:

2011-11-29 12:15:22
Run Code Online (Sandbox Code Playgroud)