私は、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に設定されています。
ご協力いただきまして誠にありがとうございます。
Javaの場合は何か分かりませんが、ほとんどの場合、MSの日付形式、またはそれより優れたyyyy/mm/dd形式のMS AccessとSQLを使用する必要があります。 – Fionnuala