ISODateTimeFormat.dateTimeParser()
「2012-05」の場合は日、「T11:55」の場合は年など、1 つ以上の指定されていないフィールドを持つ可能性のある文字列から解析された JodaTime DateTime オブジェクトがあります。ただし、これらのフィールドには常に Unix エポックのデフォルト値が入力されているようです。
入力文字列で実際に指定されていないフィールドを知る方法はありますか?
時間情報(タイムゾーン以外)が欠落している場合は、有効なISO8601形式がありません。Joda Timeがエラーをスローしないことには少し驚いていますし、何が欠けているのか理解できないことにも驚いていません。
いいえ、 を使用したときに解析されたものと解析されなかったものを見つける方法はありませんISODateTimeFormat.dateTimeParser()
。1 つのオプションは、さまざまなパーサーを手動で試すことです。厳密なもの(日付とフルタイム)を試してから、ミリ秒を削除し、秒を削除して、そのうちの1つが通過するまで繰り返します。痛いですが、実行可能です。
JSR-310 では、オブジェクトの構築から解析を分離することで、これを別の方法で処理する予定です。