我正在尝试向sqlite
数据库添加时间。在我问这个问题之前,这里有一些信息:
- 中的时间字段
sqlite
是 DateTime 类型。 - 在 bean DTO 类中,getter 和 setter 对应于时间的 Date 类型。
所以,这是我的时间格式:
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
这就是我提交信息以添加到数据库的方式:
edto.setTime(formatter.parse(startHrs.getText() + ":" + startMin.getText()));
在 sqlite 中,它变成了这样:
40320000
但是,当我想用数据库中的数据填充我的 JTable 时,时间显示为1970-01-01
。我希望它显示实际时间而不是这个时间。对于其他类型,我这样处理它们:
private void setDTOField(Field dtoField, BaseDTO dto, ResultSet rs) throws IllegalAccessException, IllegalArgumentException, SecurityException, IOException, InstantiationException {
dtoField.setAccessible(true);
try {
if (byte[].class.equals(dtoField.getType())) {
String mimedString = rs.getString(getDBColumnName(dtoField.getName()));
if (mimedString != null) {
byte[] compressedBytes = convertBASE64StringToBytes(mimedString);
dtoField.set(dto, compressedBytes);
}
} else if (Date.class.equals(dtoField.getType())) {
dtoField.set(dto, rs.getDate(getDBColumnName(dtoField.getName())));
}
所以我能做什么,我对时间一无所知。日期很好,但时间我不确定。可以改变什么?容易纠正吗?也许在数据库中它应该是字符串,或者在 bean 中不应该是日期。伙计们请为我提供一些解决方案。