首页 > 解决方案 > 如何从 sql3 数据库中获取时间并转换为 LocalTime

问题描述

我有这个代码,但每次我到达时都会出错rs.getTime("startTime").toLocalTime()

public int loadAttractionsFromDB(String dbName){
        int counter = 0;
        Connection c = null;
        try 
        {
            Class.forName("org.sqlite.JDBC");
            c = DriverManager.getConnection("jdbc:sqlite:"+dbName);
            System.out.println("Opened database successfully");
            Statement stmt = c.createStatement();
            String q = "select attName, startTime, endTime, duration from Attractions where park == 1";
            System.out.println(q);
            ResultSet rs = stmt.executeQuery( q );
            while ( rs.next() ) 
            {
                addAttraction(new Attraction(rs.getString("attName"), rs.getTime("startTime").toLocalTime(),rs.getTime("endTime").toLocalTime(), rs.getInt("duration")));
                counter++;
            }
            rs.close();
            stmt.close();
            c.close();
        } 
        catch ( Exception e ) 
        {
            System.err.println( "ERROR : "+ e.getMessage() );
        }
        return counter;

标签: java

解决方案


来自 sql 的时间变量的输出是一个字符串。所以你必须使用rs.getString("startTime")然后将其解析为 LocalTimeLocalTime.parse(rs.getString("startTime"))


推荐阅读