将日期格式从 YYYY-MM-DD (2018-08-21) 转换为 MMM-DD-YYY (2018 年 8 月 21



想看看如何使用 xsl 1.0 转换以下日期格式:

年-月-日-日-年-月-日-年-月-日-年 自 月-日-年

例如: 2018-08-21 自 八月-21-2018

谢谢!!

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>

最新更新