首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从sql3数据库中获取时间并转换为LocalTime

如何从sql3数据库中获取时间并转换为LocalTime
EN

Stack Overflow用户
提问于 2019-12-18 18:07:17
回答 2查看 48关注 0票数 0

我得到了这段代码,但每次到rs.getTime("startTime").toLocalTime()时都会出错

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2019-12-18 18:16:08

如果要将ResultSet.getTime(...)返回的java.sql.Time实例转换为LocalTime实例,请执行以下操作

代码语言:javascript
复制
LocalTime localTime = LocalTime.from(rs.getTime("startTime").toInstant());

而不是

代码语言:javascript
复制
LocalTime localTime = rs.getTime("startTime").toLocalTime();

因为在所有的Java版本at least in version 7中似乎都没有方法java.sql.Time.toLocalTime(),所以没有这样的方法。

票数 0
EN

Stack Overflow用户

发布于 2019-12-18 19:00:01

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59389620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档