Java 7 を使用しており、フラット ファイルから日付を解析しようとしています。
このファイルの日付は、「2012 年 3 月 30 日 14:05:02」という形式になっています。これを変更することはできません。別のソフトウェアに依存しています。
javadocによると、この形式は「dd-MMM-yyyy HH:mm:ss」です。
しかし、理由は不明ですが、これは機能していません。
問題を再現する小さなプログラムを次に示します。
package javaapplication2;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JavaApplication2 {
public static void main(String[] args) {
Date d = null;
try {
SimpleDateFormat df;
df = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss", Locale.FRANCE);
d = df.parse("30-Mar-2012 14:05:02");
} catch (ParseException ex) {
System.err.println(ex.getMessage());
}
if (d != null) {
System.out.println(d.toString());
}
}
}
元の日付の「3 月」の後に「s」を付けても問題は発生しません (「火星」はフランス語で 3 月の正式名称です。これは「3 月」と Locale.US の形式でも機能します)。
私は何か間違ったことをしていますか? これをそのようにすることは本当に可能ですか?これについてJavaに文書化されていない問題がありますか?