使用XSLT将日期时间转换为完整单词

时间:2015-05-31 21:59:38

标签: xml date xslt time formatting

我刚刚开始学习XSLT,并希望转换一些XML时间和日期数据,以便完全拼写出来。虽然我已经看到了将日期信息输出为单词(12到12月)的方法,但我没有看到任何允许转换时间(6:30到6:30)或年份(2005年到2005年)的内容

有没有一些标准的方法呢?如果不可行(如果很长)使用xsl这样做:if?我可以将输入限制为四分之一小时。

今年怎么样?

2 个答案:

答案 0 :(得分:2)

在XSLT 2.0中,您可以使用the format-date(), format-time() and format-dateTime() functions以各种方式格式化日期和时间,例如:

<强> XML

<input>2014-04-30T15:45:12</input>

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">
    <output>
        <xsl:value-of select="format-dateTime(input, 
            'The [DWwo] Day of [MNn] in the Year [YWw], at [hWw] Hours and [mWv] Minutes [PN]'
            )" />   
    </output>
</xsl:template>

</xsl:stylesheet>

<强>结果

<?xml version="1.0" encoding="UTF-8"?>
<output>The Thirtieth Day of April in the Year Two Thousand and Fourteen, at Three Hours and Forty Five Minutes P.M.</output>

答案 1 :(得分:0)

有人可能写了一些有用的东西,并会在这里发布一个链接,但同时一个快速而肮脏的解决方案可能是:

<xsl:choose>
  <xsl:when test='hour = 1'>
    one
  </xsl:when>
  <xsl:when test='hour = 2>
    two
  </xsl:when>
  ...
</xsl:choose>

日期/时间提取功能在这里: http://www.w3schools.com/xpath/xpath_functions.asp#datetime