0

次の形式の入力文字列配列があります-

stringArray1 = {"Vidya", "Balan", "born", "1", "January","1978","is","an","Indian", "actress."}

stringArray2 = {"President", "Franklin", "D.", "Roosevelt","to","proclaim","December", "7,",            "1941,","'a","date","which", "will","live", "in","infamy'"}

stringArray3 = {"The", "Academy", "operated", "until","it","was","destroyed", "by", "Lucius",                               "Cornelius","Sulla","in", "84", "BC"}

そして、これらの文字列配列に次のルールを適用できるようにしたい:

日付はすべて、日付の場合は yyyymmdd 形式に、タイム スタンプの場合は HH:mm:ss 形式に変換する必要があります (両方を組み合わせた場合は yyyymmdd HH:mm:ss)。タイム ゾーンは無視できます。フィールドが存在しない場合は、次のデフォルトを使用する必要があります。 • 年は 1900 に設定する必要があります。 • 月は 1 月にする必要があります。 • 日付は 1 日にする必要があります。 • 時、分、または秒は 00 にする必要があります。

したがって、上記の文字列の出力は次のようになります。

stringOutput1 = { "Vidya", "Balan", "born","19780101","is","an", "Indian","actress." }

stringOutput2 = { "President", "Franklin", "D.","Roosevelt","to","proclaim", "19411207,",   "'a","date","which", "will", "live", "in", "infamy'"}

stringOutput3 = { "The", "Academy", "operated","until", "it", "was", "destroyed", "by","Lucius","Cornelius", "Sulla", "in","-00840101"}

これにSimpleDateFormatterを使用してみましたが、SimpleDateFormatterには特定のフォーマットなしでこれを行う機能はないと思います.この問題を解決するための純粋なJavaベースのソリューションを見つける方法については実際にはわかりません.誰かが親切に助けてくれます. 時間の場合も同様です。つまり、日付と時刻の組み合わせで構成される一般的な文字列がある場合、それらの文字列をどのように変換すればよいでしょうか。

4

1 に答える 1

0

日付の書き方 (形式など) に特定の規則がない限り、任意の文字列を日付に変換することはできません。この理由はあいまいさです。例えば:

01/02/03

フォーマットでは、yy/mm/ddこれは 2001 年 2 月 3 日です (1901 年の可能性は当面無視しましょう)。

形式では、mm/dd/yyこれは 2003 年 1 月 1 日です。

等。

于 2013-09-28T21:55:43.923 に答える