私はSolrにインデックスを付ける前に、以下のフォーマットで日付を渡すことができます。渡される日付の例は次のとおりです Solr用のJavaで一般的な日付フォーマッタを作成するには?
String dateStr = "2012-05-23T00:00:00-0400";
String dateStr1 = "May 24, 2012 04:57:40 GMT";
String dateStr2 = "2011-06-21";
標準Solrフォーマットは
"yyyy-MM-dd'T'HH:mm:ss'Z '"です。
私はSimpleDateFormatを試しましたが、さまざまな形式をサポートする汎用プログラムを書くことはできません。それは、例外の解析を終了します。
また、私はジョーダの時間を試しましたが、これまでUTC変換で成功していませんでした。
public static String toUtcDate(final String iso8601) {
DateTime dt = ISO_PARSE_FORMAT.parseDateTime(iso8601);
DateTime utcDt = dt.withZone(ZONE_UTC);
return utcDt.toString(ISO_PRINT_FORMAT);
}
これを達成するための標準ライブラリはありますか?
何か指摘します。
おかげ
ご返信ありがとうございます。私は、このソリューションを避け、一般的なものがあるかどうかを調べることを試みていました。有効なものであれば、どの日付形式にも対応できます。このアプローチの問題は、新しいフォーマットがあるたびに、コードを配列に追加しない限り、コードが壊れます。すでにこれに対応しているツールがあれば、私は望んでいました。 – Shamik
私はかつてこのようなことを書いていましたが、私は約1ダース程度しか考えられませんでした。主な問題は、 '01-02-2012'が1月か2月かを決めることでした。なぜなら、ISO' dd-MM-yyyy' *と*愚かなアメリカの書式 'MM-dd-yyyy'の両方でOKです。 – Bohemian
アメリカの書式は視覚的に解析するのが簡単です。それを「愚か」と呼ぶことは、適切なi18nの欠如に答える方法ではありません。 –