2012-01-03 8 views
0

私は、MaskFormatter __/__/____と "dd/MM/yyyy"のパターンを使用する日付のカスタムJFormattedTextfieldを持っています。
は、私が使用してオブジェクトを保存するには:Java:JFormattedTextField MAskから日付をDBにアクセスするために

 try { 
     SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
     String dtStr = this.dateFormatTf.getValue().toString().trim(); // 01/01/2011 
     java.util.Date dt = df.parse(dtStr); // dt = Sun Jan 01 00:00:00 IST 2011 

     bk.setTransDate(dt); // SAVes the date as util.Date in above way as dt 
    } catch(java.text.ParseException e) { 
     Utility.logs.log(Level.WARNING, "Parse Date Exception = " + e.getMessage()); 
     e.printStackTrace(); 
     return null; 
    } 

オブジェクトに保存した後、私は、SQLのINSERTコマンドを生成してみてください。ここで、util.Dateオブジェクトを渡すと、MS AccessのDATE/TIMEフィールドに "Sun Jan 01 00:00:00 IST 2011"を格納できないため、例外が発生します。したがって、私はsql.Dateオブジェクトを取得するために以下を試した:

 long tm = bk.getTransDate().getTime(); 
    java.sql.Date dt = new java.sql.Date(tm); 

とdtを挿入するSQLコマンドを渡す。これはMS Accessの日付を保存しますが、保存される値は "01-07-1905"です。

必要な変更と、テキストフィールドからMS Access DBに適切な形式で日付ストアを作成する場所。 Access DBでは、DATEフィールドの形式がSHORTに設定されています。

ご協力いただきまして誠にありがとうございます。

+0

Javaの場合は何か分かりませんが、ほとんどの場合、MSの日付形式、またはそれより優れたyyyy/mm/dd形式のMS AccessとSQLを使用する必要があります。 – Fionnuala

答えて

0

ありがとうございました

私はMS AccessでDate issueを何度も見ました。私は、正しくアプリケーションにDateオブジェクトとして正しく&をキャストするのを助けるために、それをString/Textデータ型に変換します。

今回も同じソリューションを使用して終了しました。

関連する問題