2011-03-15 51 views
2

我搜索了一下,但找不到答案。如何在XSLT 1.0中格式化DATE

我想獲得當前的日期和格式YYYYMMDD

我不能使用EXSLT按我的要求。

+0

你已經有這樣的信息?當前日期不是XSLT 1.0上下文的一部分。 – 2011-03-15 16:05:00

回答

0

一個非常簡單的內聯C#腳本Functoid的看起來是這樣的:

public string MyDateFormat(string dateValue) 
{ 
    string result = String.Empty; 
    string outputFormat = "{0:yyyyMMdd}"; 

    DateTime parsed; 

    if (DateTime.TryParse(dateValue, out parsed)) 
    { 
     result = String.Format(outputFormat, parsed); 
    } 
    else 
    { 
     result = String.Format(outputFormat, DateTime.MinValue); 
    } 

    return result; 
} 

對於我創建了一個外部程序類似的問題,這將使用於分析輸入的時間字符串指定CultureInfo並提交輸出格式字符串作爲functoid輸入參數。

+0

是的,我用類似的C#functoid來返回日期,並將它連接到另一個腳本函數functoid,我使用內聯XSLT調用模板來實現這一點 – KK99 2011-03-16 09:42:51

-1

您希望子字符串在日期上執行。

來獲得日期:

substring-before($dateTime, 'T') 

要得到你想要對上述結果工作一年:

substring-before($previousResult, '-') 

然後拼接你從字符串操作得到的值。

這解釋了整個事情,並把它包裝上的模板:Format a date in XML via XSLT

希望這有助於。

+0

我是否需要爲$ dateTime設置一些值? – KK99 2011-03-15 09:22:16

+1

@KK,您可以將日期作爲外部樣式表參數傳遞。在xpath 1.0 stadard中指定的函數的幫助下無法獲得當前日期。如果您使用2.0,那麼您可以使用'fn:current-time()','fn:current-date()','fn:current-dateTime()'。 – 2011-03-15 09:39:16

+0

是的,但我使用BizTalk中的XSLT – KK99 2011-03-15 09:43:34