<xsl:template name="FormatDate"> <xsl:param name="DateTime" /> <!-- new date format 2006-01-14T08:55:22 --> <xsl:variable name="mo"> <xsl:value-of select="substring($DateTime,3,2)" /> </xsl:variable> <xsl:variable name="day"> <xsl:value-of select="substring($DateTime,5,2)" /> </xsl:variable> <xsl:variable name="year"> <xsl:value-of select="substring($DateTime,1,2)" /> </xsl:variable> <xsl:variable name="hh"> <xsl:value-of select="substring($DateTime,7,2)" /> </xsl:variable> <xsl:variable name="mm"> <xsl:value-of select="substring($DateTime,9,2)" /> </xsl:variable> <xsl:variable name="ss"> <xsl:value-of select="substring($DateTime,11,2)" /> </xsl:variable> <xsl:if test="(string-length($day) < 2)"> <xsl:value-of select="0"/> </xsl:if> <xsl:value-of select="$day"/> <xsl:value-of select="'-'"/> <xsl:choose> <xsl:when test="$mo = '01'">Jan</xsl:when> <xsl:when test="$mo = '02'">Feb</xsl:when> <xsl:when test="$mo = '03'">Mar</xsl:when> <xsl:when test="$mo = '04'">Apr</xsl:when> <xsl:when test="$mo = '05'">May</xsl:when> <xsl:when test="$mo = '06'">Jun</xsl:when> <xsl:when test="$mo = '07'">Jul</xsl:when> <xsl:when test="$mo = '08'">Aug</xsl:when> <xsl:when test="$mo = '09'">Sep</xsl:when> <xsl:when test="$mo = '10'">Oct</xsl:when> <xsl:when test="$mo = '11'">Nov</xsl:when> <xsl:when test="$mo = '12'">Dec</xsl:when> </xsl:choose> <xsl:value-of select="'-'"/> <xsl:value-of select="$year"/> <xsl:value-of select="'T'"/> <xsl:value-of select="$hh"/> <xsl:value-of select="':'"/> <xsl:value-of select="$mm"/> <xsl:value-of select="':'"/> <xsl:value-of select="$ss"/> </xsl:template>
copied from http://snipr.com/1z833 [geekswithblogs.net] and modified to suit the date input format I used.