0

日付を特定の形式に変換しようとしていますが、エラーが発生しています:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.openapplications.org/oagis/9"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xsl:variable name="origDate" select="row[@num='6']/cell[@num='2']"/>
<PromisedDeliveryDateTime><xsl:value-of select="format-date(xs:date($origDate), '[Y] [M] [D]')" /></PromisedDeliveryDateTime>

しかし、私はエラーが発生します:

XQMessage 部分の変換に失敗しました。インデックス = 0 (無効な日付 "30.11.2011"
(非数値コンポーネント)

4

1 に答える 1

3

xs:date()コンストラクター関数は、ISO日付形式の文字列2011-11-30を想定しています。他の形式の日付を操作するには、最初にそれらをISO形式に変換する必要があります。これは、たとえば次のように実行できます。

string-join(reverse(tokenize($in, '.')), '-')
于 2012-09-10T08:04:14.717 に答える