我得到的日期时间为"2016-03-03T05:11:56"。 我想将其显示为 RFC 2822 日期格式(星期四,03 三月 2016 05:11:56 GMT)。如何在 XSLT 1.0 中实现这一点?任何帮助,不胜感激。谢谢大家
假设您的日期时间不包含时间偏移量或秒的小数部分,您可以使用以下内容:
<xsl:template name="dateTime-to-RFC-2822">
<xsl:param name="dateTime"/>
<!-- extract components -->
<xsl:variable name="year" select="substring($dateTime, 1, 4)" />
<xsl:variable name="month" select="substring($dateTime, 6, 2)" />
<xsl:variable name="day" select="substring($dateTime, 9, 2)" />
<!-- calculate day-of-week using Zeller's_congruence -->
<xsl:variable name="a" select="$month < 3"/>
<xsl:variable name="m" select="$month + 12*$a"/>
<xsl:variable name="y" select="$year - $a"/>
<xsl:variable name="K" select="$y mod 100"/>
<xsl:variable name="J" select="floor($y div 100)"/>
<xsl:variable name="h" select="($day + floor(13*($m + 1) div 5) + $K + floor($K div 4) + floor($J div 4) + 5*$J + 6) mod 7"/>
<!-- construct output -->
<xsl:value-of select="substring('SunMonTueWedThuFriSat', 3 * $h + 1, 3)"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="$day"/>
<xsl:text> </xsl:text>
<xsl:value-of select="substring('JanFebMarAprMayJunJulAugSepOctNovDec', 3 * ($month - 1) + 1, 3)"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$year"/>
<xsl:text> </xsl:text>
<xsl:value-of select="substring-after($dateTime, 'T')" />
<xsl:text> GMT</xsl:text>
</xsl:template>
注意:我认为GMT
后缀已经过时,您应该改用+0000
。