通过使用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中。
SQLite3不提供日期类型。
您需要将其获取为String并用Java解析。
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(rs.getString("CREATION_TIME")); //Throws exception
请参阅:http://www.sqlite.org/datatype3.html