Java:从JFormattedTextField MAsk到Access DB保存日期

时间:2012-01-03 12:12:16

标签: java ms-access date insert

我有一个自定义的JFormattedTextfield,用于使用MaskFormatter __/__/____和patttern“dd / MM / yyyy”的日期。
   要保存到我使用的对象:

        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。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

感谢所有人,

我在MS Access中多次看到日期问题。大多数情况下,我将其转换为字符串/文本数据类型,以帮助我正确存储&在Application中正确转换为Date对象。

好吧,这次我也结束了使用相同的解决方案。