EXSLT:日期:格式化日期:解析日期,而不是解析时间



设置:Apache Xalan 2.7.1

输入:

<?xml version="1.0" encoding="UTF-8"?>
<r>
   <generated_date>2015-07-03 11:48</generated_date>
</r>

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:xdt="http://exslt.org/dates-and-times"
            exclude-result-prefixes="xdt">
            <xsl:variable name="generated-date" select="xdt:format-date(//generated_date,'YYYY-MM-dd hh:mm:ss')"        />
      <xsl:template match="/">
             <xsl:value-of select="$generated-date"/>
      </xsl:template>
</xsl:stylesheet>

输出:

<generated_date>2015-07-03 12:00:00</generated_date>

Q:为什么我不明白为什么时间没有和日期一起解析。时间应等于11:48:00。


注意:只能应用xslt 1.0解决方案。

我不明白为什么时间没有一直被解析日期

AFAICT,它不适用于您的原因是提供的日期/时间字符串不是函数接受的定义格式之一-请参阅:http://exslt.org/date/functions/format-date/index.html

如果要格式化日期和时间,则提供的字符串必须格式化为YYYY-MM-DDThh:mm:ss,即使用T作为日期和时间之间的分隔符,并将秒包括在时间部分中。请在此处查看其工作情况1:http://xsltransform.net/6qVRKwS

只能应用xslt 1.0解决方案。

我不确定你在这里寻找什么样的解决方案。提供的字符串已经是所需的格式,除了缺少的秒部分,所以您可以简单地输出:

<xsl:value-of select="concat(given-date,':00')"/>

而不需要任何扩展。


(1( 请注意,没有一个主要的XSLT1.0处理器支持EXSLTformat-date()函数,其中包括Xalan2.7.1。尽管它似乎在工作,但官方不提供该功能-请参阅:http://xsltransform.net/6qVRKwS/1

相关内容

  • 没有找到相关文章

最新更新