【问题标题】:How to convert String to Time and insert it MySQL如何将字符串转换为时间并将其插入 MySQL
【发布时间】:2012-04-06 15:25:21
【问题描述】:

我有一个JSP页面,所以用户可以手动插入他/她到达和离开的时间。 我的问题是:如何从输入框(JSP)转换该字符串,然后将其插入到我的 MySQL 表中进行查询。 我正在使用 Java - servlet。 谢谢

【问题讨论】:

    标签: java mysql jsp servlets time


    【解决方案1】:

    您可以使用SimpleDateFormat 将给定模式中的String 解析为java.util.Date 对象。

    假设是HH:mm,那么你可以这样做:

    String time = request.getParameter("time");
    Date date = null;
    
    try {
        date = new SimpleDateFormat("HH:mm").parse(time);
    }
    catch (ParseException e) {
        request.setAttribute("time_error", "Please enter time in format HH:mm");
    }
    

    拥有java.util.Date 对象后,您可以通过将其转换为java.sql.Time 并使用PreparedStatement#setTime() 将其存储在TIME 列中。

    preparedStatement = connection.prepareStatement("INSERT INTO tablename (columname) VALUES (?)");
    preparedStatement.setTime(1, new Time(date.getTime()));
    preparedStatement.executeUpdate();
    

    【讨论】:

    • 只有一件事。我正在尝试创建日期对象,但收到编译错误。 “对 Date 的引用是模棱两可的,两个类。......匹配。
    • 不要使用java.sql.Date。使用java.util.Date
    • 谢谢,我已经解决了。当我在同一个包 .sql.Date 和 util.Date 中使用时,我必须指定我作为参数传递的数据类型。所以我使用了 (String s, java.uitl.Date clockIn ...)。它解决了这个问题。谢谢
    • 我建议反其道而行之。 java.sql.Date 无论如何都很少使用。您基本上只需要在 PreparedStatement#setDate() 方法中使用它,其他任何地方都不需要。
    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多