希望了解如何使用xsl 1.0转换以下日期格式:
YYYY-MM-DD 至 MMM-DD-YYY
例如: 2018-08-21 至 2018年8月21日
谢谢!
答案 0 :(得分:0)
在 XSLT 2.0 或使用format-date()
的版本中,此操作会容易得多:
format-date(xs:date('2018-08-21'), '[MNn,*-3]-[D]-[Y]')
下面的 XSLT 1.0 解决方案使用substring()
来标识日期成分,使用带有参数的命名模板将日期转换为缩写,然后使用concat()
来标识日期。产生最终结果。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:call-template name="MMM-DD-YYY">
<xsl:with-param name="date" select="'2018-08-21'"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="MMM-DD-YYY">
<xsl:param name="date"/>
<xsl:variable name="year" select="substring($date, 1,4)"/>
<xsl:variable name="day" select="substring($date, 9, 2)"/>
<xsl:variable name="month">
<xsl:call-template name="month-abbr">
<xsl:with-param name="month" select="number(substring($date, 6, 2))"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat($month,'-',$day,'-',$year)"/>
</xsl:template>
<xsl:template name="month-abbr">
<xsl:param name="month"/>
<xsl:choose>
<xsl:when test="$month = 1">Jan</xsl:when>
<xsl:when test="$month = 2">Feb</xsl:when>
<xsl:when test="$month = 3">Mar</xsl:when>
<xsl:when test="$month = 4">Apr</xsl:when>
<xsl:when test="$month = 5">May</xsl:when>
<xsl:when test="$month = 6">Jun</xsl:when>
<xsl:when test="$month = 7">Jul</xsl:when>
<xsl:when test="$month = 8">Aug</xsl:when>
<xsl:when test="$month = 9">Sep</xsl:when>
<xsl:when test="$month = 10">Oct</xsl:when>
<xsl:when test="$month = 11">Nov</xsl:when>
<xsl:when test="$month = 12">Dec</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>