Java:将JFormattedTextField掩码中的日期保存到Access DB
我有一个自定义的JFormattedTextfield用于日期,它使用MaskFormatterJava:将JFormattedTextField掩码中的日期保存到Access DB,java,ms-access,date,insert,Java,Ms Access,Date,Insert,我有一个自定义的JFormattedTextfield用于日期,它使用MaskFormatter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 要保存到我使用的对象,请执行以下操作: try { SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); String d
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
要保存到我使用的对象,请执行以下操作:
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;
}
保存到对象后,我尝试生成SQLINSERT命令。在这里,如果我传递util.Date对象,它会给出异常,因为它不能在MS Access的日期/时间字段中存储“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”
需要进行哪些更改,以及在哪里以正确格式将日期存储从textfield转换为MS Access DB。
在Access DB中,日期字段的格式设置为SHORT
非常感谢您的帮助。谢谢大家
我在MS Access中多次看到日期问题。大多数情况下,我将其转换为字符串/文本数据类型,以帮助我在应用程序中正确存储并转换为日期对象
这一次我也使用了相同的解决方案 我不确定Java的情况是什么,但在大多数情况下,您需要使用US date格式,或者更好的,使用带有MS Access和SQL的yyyy/mm/dd格式。