5

Javaクラスでは、mm / dd/yyyyのdatepicker入力フォームから「renewDate」という文字列として日付を取得します。

jodaタイムライブラリを使用してコードを更新しようとすると

DateTime expireDate = new DateTime(renewDate);
// i get error at above line
updateOrganization.setRenewdate(expireDate.toDate());
organizationDAO.update(updateOrganization);

しかし、日付をmm / dd / yyyyからyyyy-mm-ddの形式でフォーマットし、それをJavaクラスに送信すると正常に機能します。

Javaクラスで日付をmm/dd/yyからyyyy-mm-ddにフォーマットするにはどうすればよいですか。入力はStringformatです。

4

2 に答える 2

15

使用しているコンストラクターの有効な形式のリストは、「mm / dd/yyyy」を含まないISODateTimeFormatのjavadocに詳しく説明されています。

日時=時間| date-opt-time
time ='T' time-element [offset]
date-opt-time = date-element ['T' [time-element] [offset]]
date-element = std-date-element | ord-date-element | week-date-element
std-date-element = yyyy ['-' MM ['-' dd]]
ord-date-element = yyyy ['-' DDD]
week-date-element = xxxx'-W' ww [ '-'e]
時間要素=HH[分要素]| [分数]
分要素=':'mm[2番目の要素]| [分数]
2番目の要素=':' ss [分数]
分数=('。'|'、')桁+
オフセット='Z' | (('+' |'-')HH [':

DateTimeFormatterを使用して別の形式を解析できます(月の大文字のMMに注意してください)。

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTime expireDate = fmt.parseDateTime(renewDate);
于 2012-05-31T11:30:42.263 に答える
2

コンストラクターは文字列がISO形式であると想定しているため、静的メソッドparseを使用して日付を解析する必要があります。

必要な日付形式は次のとおりです

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTime expireDate = DateTime.parse( renewDate, fmt );
于 2012-05-31T11:32:06.127 に答える