我有一个自定义的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。
非常感谢任何帮助。
答案 0 :(得分:0)
感谢所有人,
我在MS Access中多次看到日期问题。大多数情况下,我将其转换为字符串/文本数据类型,以帮助我正确存储&在Application中正确转换为Date对象。
好吧,这次我也结束了使用相同的解决方案。