10

30042013(30 April 2013) のような文字列を日付形式に変換することはできますか?

したがって、後で次のような関数で使用できますformat-date

4

2 に答える 2

12

Tomalak が言ったように、 and を使用substring()concat()てキャストできる文字列を作成できますxs:date()(dateTime が必要なようには聞こえません)。

例:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="text"/>
    <xsl:strip-space elements="*"/>

    <xsl:variable name="in" select="'30042013'"/>

    <xsl:template match="/">
        <xsl:variable name="date" select="xs:date(concat(
            substring($in,5,4),'-',
            substring($in,3,2),'-',
            substring($in,1,2)))"/>
        <xsl:value-of select="format-date($date,'[MNn] [D], [Y]')"/>
    </xsl:template>

</xsl:stylesheet>

(任意の XML 入力で) を生成します

April 30, 2013
于 2013-05-31T07:41:20.597 に答える
7

fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?)はその引数を に変換しますxs:dateTime

と を使用fn:substring()fn:concat()て関連する部分を切り取り、yyyy-mm-ddに渡す前と同様に結合しますfn:dateTime

于 2013-05-31T07:18:04.497 に答える