将时间错误地检索为1970-01-01而不是格式HH:mm

时间:2013-02-14 12:09:58

标签: java sqlite date datetime time

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

  1. sqlite中的时间字段属于DateTime。
  2. 在bean DTO类中,getter和setter对应于Date类型的时间。
  3. 所以,这是我的时间格式:

    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中不应该是Date。伙计们请支持我一些解决方案。

0 个答案:

没有答案