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

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

public List getAllData() { List meters = new ArrayList(); 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; } 

我将日期定义为: private Date 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