1

日付の可能なすべての文字列表現を Date オブジェクトに変換できる必要があります。これは些細な作業ではないことは承知しており、「ワンライナー」の解決策はないと考えているため、主にガイダンスを求めています。

可能な入力クラスを 1 つだけ示す現在の例:return new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);

私の質問を明確にするために、いくつかの可能な文字列入力を次に示します。

  • 2011 年 8 月 30 日
  • 2011.06.25
  • 2011年6月15日
  • 01-07-11
  • 2011 年 9 月 19 日

データは第三者に譲渡されているため、私にはどうすることもできません。区切り記号が何であるかを確認し、それに基づいて正しい形式を選択することについていくつか考えました。

どんな助けでも大歓迎です。

よろしく。

編集:ユーザーのロケールにアクセスできます。このようにして、実際に日と月の部分を区別できます。言い換えれば、日付のロケールにアクセスできます。

4

3 に答える 3

0

文字列を構成要素 (日、月、年) に分割し、それらを個別に解析してみてください。

元:

String input = 30-08-2011;
if (input.indexOf("-") == -1)
return;
else    
   String day = index.substring(0, selected.indexOf("-"));

その日は、個別に解析できます。次に、このプロセスを月と年に対して繰り返します。そうすれば、日付のコンポーネント間のフォーマットについて心配する必要はありません。

于 2013-07-16T13:51:22.553 に答える