特定の形式を使用して、ストライプの日付をどのようにバインドしますか? mm/dd/yyyy hh:mm:ss

StackOverflow https://stackoverflow.com/questions/3752200

  •  04-10-2019
  •  | 
  •  

質問

日付をどのようにバインドしますか ストライプ 特定の形式を使用しますか? 「MM/DD/YYYY HH:MM:SS」

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
役に立ちましたか?

解決

ストライプが使用します TypeConverters 要求パラメーター(文字列)を特定のタイプに変換するため。デフォルトの日付タイプコンバーターのJavadocはこちらをご覧ください:

net.sourceforge.stripes.validation.datetypeconverter

デフォルトの形式を変更するには、次のように述べています。

このデフォルトのフォーマットセットは、Stripes Resource Bundleに異なるフォーマット文字列を提供するか、SubクラスとオーバーライドGetFormatstrings()を提供することで変更できます。すべての場合において、パターンは、スラッシュ、ダッシュ、またはその他の文字の代わりに分離器として単一スペースを使用して指定する必要があります。

と:

フォーマット文字列と前処理パターンを指定するためにリソースバンドルで使用されるキーは、stripes.dateTypeconverter.formatstrings and stripes.dateTypeconverter.preprocesspatternです。

それがあなたのためにそれをしないなら、あなたはいつでもあなたが自分のものを転がすことができます TypeConverter. 。このカスタムタイプコンバーターは、そうすることができます ActionBeanのセッターにバインドされています に:

@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
  this.date = date;
}

マッピングを自動的に実行する場合は、デフォルトのマッパーをオーバーライドするか、別の(サブ)タイプを作成する必要があります。たとえば、java.util.date用ではなく、java.util.dateから継承する独自のカスタムタイプ用に独自のタイプコンバーターを作成します。追加の動作がないサブタイプであるため、残りのアプリケーションはjava.util.dateとして使用できます。

Date date;

// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
  this.date = date;
}     

他のヒント

<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>

SimpleDateFormat あなたを助けることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top