You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XSLT文件中以dd/mm/yyyy格式显示日期?

解决XSLT中日期格式转为dd/mm/yyyy的问题

没问题!你用EXSLT的ex:date-time()得到的是YYYY-MM-DDZ格式的日期,要转换成dd/mm/yyyy其实很简单——只需要拆分日期的各个部分,再按目标格式重新拼接就行。

这里给你两种实现方式,都是基于EXSLT扩展的:

方法一:直接处理ex:date-time()的返回值

先提取掉末尾的Z,再拆分年、月、日字段,最后用concat组合成目标格式:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                xmlns:ex="http://exslt.org/dates-and-times" 
                extension-element-prefixes="ex">

  <xsl:template match="/">
    <!-- 提取不带Z的纯日期字符串(YYYY-MM-DD) -->
    <xsl:variable name="formatted-date-part" select="substring(ex:date-time(), 1, 10)"/>
    
    <!-- 拆分日、月、年 -->
    <xsl:variable name="day" select="substring($formatted-date-part, 9, 2)"/>
    <xsl:variable name="month" select="substring($formatted-date-part, 6, 2)"/>
    <xsl:variable name="year" select="substring($formatted-date-part, 1, 4)"/>
    
    <!-- 拼接成dd/mm/yyyy格式 -->
    <xsl:value-of select="concat($day, '/', $month, '/', $year)"/>
  </xsl:template>

</xsl:stylesheet>

方法二:用ex:date()简化步骤

如果你的XSLT处理器支持ex:date()函数(它直接返回YYYY-MM-DD格式,不需要手动截掉Z),代码可以更简洁:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                xmlns:ex="http://exslt.org/dates-and-times" 
                extension-element-prefixes="ex">

  <xsl:template match="/">
    <xsl:variable name="raw-date" select="ex:date()"/>
    <xsl:value-of select="concat(substring($raw-date,9,2), '/', substring($raw-date,6,2), '/', substring($raw-date,1,4))"/>
  </xsl:template>

</xsl:stylesheet>

注意事项

要确保你的XSLT处理器(比如Saxon、Xalan)已经启用了EXSLT日期扩展,有些环境需要手动配置才能使用这些扩展函数哦。

内容的提问来源于stack exchange,提问作者snehamayi senapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:26:26