Java 与格式HH:mm相反,检索时间错误为1970-01-01

Java 与格式HH:mm相反,检索时间错误为1970-01-01,java,sqlite,date,datetime,time,Java,Sqlite,Date,Datetime,Time,我正在尝试向sqlite数据库添加时间。 在我提问之前,这里有一些信息: sqlite中的时间字段的类型为DateTime。 在bean DTO类中,getter和setter对应于时间的日期类型。 这是我的时间格式: SimpleDateFormat formatter = new SimpleDateFormat("HH:mm"); 以下是我提交信息以添加到数据库的方式: edto.setTime(formatter.parse(startHrs.getText() + ":" + st

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

sqlite中的时间字段的类型为DateTime。 在bean DTO类中,getter和setter对应于时间的日期类型。 这是我的时间格式:

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

java.util.Date将日期存储为从历元1970-01-01的毫秒偏移量。它不适合只存储一天中的时间。我怀疑sqllite DateTime也是如此。为此,我将使用一个字符串,或者从午夜开始的整数分钟数。请尝试使用。它为您提供了更好的日期和时间值处理和功能。