特定のパターンを使用して日付を表示するには、次のJSFコードがあります。ロケールに基づいて日時パターンを決定する
<f:convertDateTime pattern="E, d MMM, yyyy" timeZone="#{localeBean.timeZone}" />
このパターンにはlocaleBeanも渡したいと思います。 ロケールに基づいて特定のパターンを特定する方法はありますか?
特定のパターンを使用して日付を表示するには、次のJSFコードがあります。ロケールに基づいて日時パターンを決定する
<f:convertDateTime pattern="E, d MMM, yyyy" timeZone="#{localeBean.timeZone}" />
このパターンにはlocaleBeanも渡したいと思います。 ロケールに基づいて特定のパターンを特定する方法はありますか?
DateFormat.getDateInstance
を試すことができます。例:
SimpleDateFormat f = (SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT, Locale.UK);
System.out.println(f.toPattern());
f = (SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
System.out.println(f.toPattern());
プリント:
dd/MM/yy
M/d/yy
f:convertDateTime
はviewrootのロケールに依存し、このためtype
、dateStyle
とtimeStyle
属性を提供します。 Faceletsのを想定し
:
<!DOCTYPE html>
<html lang="#{localeBean.language}"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:view locale="#{localeBean.locale}">
<h:head>
<title>SO question 4792373</title>
</h:head>
<h:body>
<h:outputText value="#{bean.date}">
<f:convertDateTime type="date" dateStyle="short" />
</h:outputText>
<br />
<h:outputText value="#{bean.date}">
<f:convertDateTime type="date" dateStyle="medium" />
</h:outputText>
<br />
<h:outputText value="#{bean.date}">
<f:convertDateTime type="date" dateStyle="long" />
</h:outputText>
<br />
<h:outputText value="#{bean.date}">
<f:convertDateTime type="date" dateStyle="full" />
</h:outputText>
</h:body>
</f:view>
</html>
は、ここでは、英語のロケールと同じようにレンダリングする方法は次のとおりです。
1/25/11 Jan 25, 2011 January 25, 2011 Tuesday, January 25, 2011
ドイツ語:
25.01.11 25.01.2011 25. Januar 2011 Dienstag, 25. Januar 2011
オランダ語:
25-1-11 25-jan-2011 25 januari 2011 dinsdag 25 januari 2011
フランス語:
25/01/11 25 janv. 2011 25 janvier 2011 mardi 25 janvier 2011
など。
は、どのように私はまた、AMまたはPMインジケータ付きの24時間形式で時刻を含めるためにこれを使用することができますか? M/d/yy HH:mm AM/PM? –
パターンにパターンを追加するだけで済みます。 'pattern = f.toPattern()+" HH:mm a "' – dogbane
大変です。ありがとうドッグベーン。そしてBalus Cにも感謝します。私は評判がどのように共有されているのかよく分かりません。誰かに2/3の印を付け、もう1つに1/3の印を付けることは可能ですか? –