我的约会时间为“2016-03-03T05:11:56”。我希望将其显示为RFC 2822日期格式(星期四,2016年3月3日05:11:56 GMT)。如何在XSLT 1.0中实现这一点?感谢任何帮助。谢谢大家
答案 0 :(得分: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
代替。