2011-05-17 27 views
1

如果我在歐洲,德國,我用:JSTL <FMT:FormatData將>時區問題

<fmt:formatDate value="${now}" type="BOTH" timeZone="America/Los_Angeles"/> 

日期和時間總是格式化爲

17-05-2011 1.32 .10

而不是英文格式,第一個月和第二天。

只有時區已更正。

爲什麼?

謝謝。

回答

1

你需要重寫pattern也,覆蓋timezone不會改變輸出格式

<fmt:formatDate value="${now}" type="BOTH" timeZone="America/Los_Angeles" pattern="MM/dd/yyyy HH:mm"/> 
+0

因此,如果此標籤無法自動轉換爲本地格式的日期,我認爲它不是非常有用。奇怪的是,在規格說不是! – xdevel2000 2011-05-17 08:41:27

+0

區域設置是否包含日期格式?也可以有自定義區域設置。所以你如何處理標籤? – 2011-05-17 08:43:49

+0

如果我指定一個模式屬性,那麼我想使用它,否則容器應該使用與timeZone屬性有關的屬性。 – xdevel2000 2011-05-17 08:46:20

1

如果你不想使用明確的模式,總是要強制使用單一語言環境中,您可以嘗試在web.xml中包含以下內容:

<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name> 
    <param-value>en_US</param-value> 
</context-param> 

您不應該在此方法中使用<fmt:setLocale>。您還可以通過javax.servlet.jsp.jstl.core.Config類(例如,在偵聽器,篩選器或servlet中)獲取和設置配置數據。