小编典典

如何使用Java从Sqlite3数据库中解析日期?

jsp

通过使用POJO为我的方法创建模型,我正在从sqlite3
DB获取数据。在检索arraylist中的数据时,我得到了日期解析错误。该日期在sqlite3数据库中定义为时间戳,并在编译时 引发
无法解析的日期:“ 2015-05-21 12:41:56”错误 。并且在编译查询时抛出该 错误解析时间戳错误
我正在使用getDate()从表中检索日期。

public List<EnergyMeter> getAllData() {
    List<EnergyMeter> meters = new ArrayList<EnergyMeter>();
    try {
        LOGGER.info("############### FetchData.getAllData() start");
        Statement statement = DBConnection.getConnection().createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM ENERGY_METER");
        LOGGER.info("############### FetchData.getAllData() meters:"+rs.getDate("CREATION_TIME"));
        while (rs.next()) {
            EnergyMeter energyMeter = new EnergyMeter();
            energyMeter.setDEVICE_IP(rs.getString("IP"));
            energyMeter.setCREATION_TIME(rs.getDate("CREATION_TIME"));
            energyMeter.setDESCRIPTION(rs.getString("DESCRIPTION"));
            energyMeter.setDEVICE_NAME(rs.getString("DEVICE_NAME"));
            energyMeter.setEMAIL_ID(rs.getString("EMAIL_ID"));
            energyMeter.setFDU_NAME(rs.getString("FDU_NAME"));
            energyMeter.setICBS(rs.getString("ICBS"));
            energyMeter.setLOCATION(rs.getString("LOCATION"));
            energyMeter.setMAC_ADDRESS(rs.getString("MAC_ADDRESS"));
            energyMeter.setMASTER_ID(rs.getString("MASTER_ID"));
            energyMeter.setPARAMETER(rs.getString("PARAMETER"));
            energyMeter.setPORT(rs.getString("PORT"));
            energyMeter.setPRODUCT_NAME(rs.getString("PRODUCT_NAME"));
            energyMeter.setSMTP(rs.getString("SMTP"));
            energyMeter.setSNMP(rs.getString("SNMP"));
            meters.add(energyMeter);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    LOGGER.info("############### FetchData.getAllData() end");
    return meters;
}

我将日期定义为: 私有日期CREATION_TIME; 在POJO中。


阅读 625

收藏
2020-06-10

共1个答案

小编典典

SQLite3不提供日期类型。

您需要将其获取为String并用Java解析。

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(rs.getString("CREATION_TIME")); //Throws exception

请参阅:http//www.sqlite.org/datatype3.html

2020-06-10