私はStringのように見えるDateを持っており、それを解析したい。
しかし、日付は多くのパターンの1つのように見えます。parse joda-time
MM/dd/yy
又は
HH:mm
又は
MM/dd/yy HH:mm
又は
MM/dd/yy HHmm
Iは多くのパターン
を解析することができるコードを有しますpublic DateTime parseDateTime(final String text)
{
if (StringUtils.isEmpty(text)) return null;
int field = 0;
DateTime dateTime = null;
IllegalArgumentException exception = null;
for (; field < FIELD_COUNT; ++field)
{
if (null != formatters[field])
{
try
{
dateTime = formatters[field].parseDateTime(text);
break;
}
catch (final IllegalArgumentException e)
{
exception = null != exception ? exception : e;
}
}
}
if (dateTime == null)
{
throw exception;
}
return dateTime;
}
formatters[]
は
DateTimeFormatter
の配列は、あなたが別の方法を提案することができるのですか?よりシンプルに
グーグルが私に[POJava](http://www.pojava.org)と呼ばれるライブラリを伝えるには、ヒューリスティック日付/時刻のパーサーが含まれています。 org/site/pojava-2.8.0/apidocs/org/pojava/datetime/DateTime.htmlを参照してください。これを行う別のライブラリはPythonの[dateutil](http://labix.org/python-dateutil)ですが、明らかにその努力に値するものではないかもしれないものを移植する必要があります。 – millimoose
あなたのアプローチは読みやすく保守的です。あなたの初期設定を 'フォーマット'すると、どのパターンがサポートされているかを一目でわかります。他のコードを変更せずにパターンを追加したり削除したりすることができます。あなたが今持っているものと比べて、より単純な選択肢を比較することは価値があるでしょう。 –