2012-03-29 9 views
0

は、私が(例:2012-30-03 12:30)の文字列を持っている、と私は次のコードを使用しようとしています:「2012-30-03」は、2014年6月3日のDateFormatで解析されるのはなぜですか?

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
this.startTime = (Date) df.parse(startTime); // startTime = "2012-30-03 12:30" 

をしかし、私がしようとするときは、次の

System.out.println(this.startTime); 

以下は、印刷されます

火6月3日12時30分00秒CEST 2014

ここで何が問題なの?

私は働いている日付オブジェクトにある文字列の種類を有効にするより良い方法はありますか?

+2

: http://joda-time.sourceforge.net/ – robertvoliva

+3

間違いなく発生した例外があるはずものの1が行くならば、それは「技術的に正しい」です** * 30ヶ月**および** 3日**過去の2012 *。いずれにせよ、より客観的な形で質問を書くようにしてください。 –

+2

日付を正しく書き込む - どのように動作しますか? – trutheality

答えて

9

私は

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");

は、あなたが提供した例の文字列(2012-30-03 12:30)に基づいて

DateFormat df = new SimpleDateFormat("yyyy-dd-MM HH:mm");

されるべきだと思います。

あなたの怒りを日付クラスに対して集中させて、基本を確認すればOKです。 ;私はジョダ時間を使うボード全体でかなりの)

+1

これはおそらく間違っている文字列の例です。誰も年月日形式を使用しません。年 - 月 - 日、月 - 日 - 年、または日 - 月 - 年のいずれかです。可能であれば – trutheality

+0

ですが、私は書き込まれた情報に基づいてのみ診断することができます。また、非標準の日付書式以外にも、私は奇妙なものをソフトウェアで見てきました。 – hvgotcodes

+0

ハハ、オメ...私の悪い:P –

関連する問題