Xalan supports the EXSLT str:tokenize() extension function, so you could do something like:
<xsl:template name="reformat-date">
<xsl:param name="input"/>
<!-- extract dateTime components -->
<xsl:variable name="tokens" select="str:tokenize($input, ' ')"/>
<xsl:variable name="mmm" select="$tokens[2]"/>
<xsl:variable name="day" select="$tokens[3]"/>
<xsl:variable name="time" select="$tokens[4]"/>
<xsl:variable name="year" select="$tokens[6]"/>
<!-- convert MMM to month number -->
<xsl:variable name="month" select="string-length(substring-before('JanFebMarAprMayJunJulAugSepOctNovDec', $mmm)) div 3 + 1" />
<!-- output -->
<xsl:value-of select="$year"/>
<xsl:value-of select="format-number($month, '-00')"/>
<xsl:value-of select="format-number($day, '-00')"/>
<xsl:text>T</xsl:text>
<xsl:value-of select="$time"/>
</xsl:template>
Demo: http://xsltransform.net/6qCcdd5
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…