1

我正在尝试向sqlite数据库添加时间。在我问这个问题之前,这里有一些信息:

  1. 中的时间字段sqlite是 DateTime 类型。
  2. 在 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 中不应该是日期。伙计们请为我提供一些解决方案。

4

0 回答 0