2012-02-13 16 views
0

SQLの日付が正しく設定されていません。理由は何ですか?Javaの日付がSQLに正しく変換されない

public void vDate(String s) { 
     try{ 
      SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
      java.util.Date utilDate = (Date)dateFormat.parse(s); 
      date = new java.sql.Date(utilDate.getTime()); 
     }catch(Exception e){ 
      edate = "Please enter a valid date!"; 
      valid = false; 
     } 
    } 

日付はjava.sql.Date型です。 20-03-2012は2013-08-03に変換されます。

+0

奇妙なことに、以下に言及していません。入力が20-03-2012の場合は、SimpleDateFormat()形式の文字列に 'dd-MM-yyyy'を使用してください。 – DwB

答えて

2

MM-dd-yyyyを使用していますが、20-03-2012を過ぎています。 20は有効な月ではありません。あなたが最初に日を過ごしたいならば、代わりにdd-MM-yyyyを使うべきです。または、月の健全性チェックを追加します。入力値が< = 0または> = 13の場合は、拒否します。

0

これは簡単です。あなたの日付形式はMM-dd-yyyyで、日付は20-03-2012です。あなたの提供する自衛隊のために月に12月だけでなく、20になります。

0

20 2012年は2013年に変わります(12 + 8 = 20)。確認してください/変更してください。

0

20-03-2012"MM-dd-yyyy"には含まれていないので、それを月#20と解釈しようとしました。そのような1ヶ月はないので、あなたは1年8ヶ月シフトされているので、あなたは2013-08-03(3は今日の部分です)になります。

関連する問題