【问题标题】:How to get only year, month,day,horus and seconds from Java JSpinner如何从 Java JSpinner 中仅获取年、月、日、小时和秒
【发布时间】:2013-08-17 17:14:28
【问题描述】:

我正在处理我的 MySQL 项目,但遇到了一个问题。我制作了一个JSpinner,它显示了当前日期和时间。现在我想将该日期和时间保存在一个 datetime 变量中以供以后使用,但问题是当我将 JSpinner 中的值保存到我的 datetime 变量中时,它不是 'YYYY-MM-DD HH:MM:SS' 格式.而不是我的datetime 变量包含以下内容:'Sat Aug 17 19:07:03 CEST 2013'。我只想以经典的 'YYYY-MM-DD HH:MM:SS' 格式保存数字,因为我服务器上的数据库只接受该格式的数据,但我不知道如何转换它。请帮忙!

这是我的代码:

String datum_vrijeme;
SpinnerDateModel s1 = new SpinnerDateModel();
spinner1 = new JSpinner(s1);
JSpinner.DateEditor d1 = new JSpinner.DateEditor(spinner1, "yyyy/MM/dd   HH:mm:ss");
spinner1.setEditor(d1);
Object sp = spinner1.getValue();
datum_vrijeme=sp.toString();

【问题讨论】:

    标签: java swing date datetime jspinner


    【解决方案1】:

    您可以获取java.util.Date 对象,它更接近您的 MySQL 数据库,而不是字符串。

    Date date = (Date) spinner1.getValue();
    

    【讨论】:

    • 抱歉,我使用的是 JDBC 连接器,我需要编写我的 sql 查询,所以我需要将我的日期时间设置为字符串格式,这样我就可以将它与我的字符串查询连接起来,最终执行它来更新我的数据库行...
    • 您应该按照 Martijn 的建议进行操作,并将 Date 对象作为 PreparedStatement 的参数传递。
    • @MahirDuraković:这是不好的做法!搜索 PreparedStatements 和 SQL Injection 你就会知道为什么了。 Prepared Statements 确实支持 Date 对象。
    • 我尝试了你的建议,但我又遇到了同样的问题。我的日期变量采用以下格式:'Sat Aug 17 19:07:03 CEST 2013',我希望它采用经典的'YYYY-MM-DD HH:MM:SS' 格式
    • @Mahir Duraković 必须测试是否需要将 util.Date 转换为 sql.Date 或时间戳,由您决定。顺便说一句,这里一定是一堆问答,注意在所有情况下你都需要为 Swing (JSpinner)、Java Essential Classes(util.Date) 和 JDBC (DateTime/Timestampt) 分开逻辑
    猜你喜欢
    • 2015-01-18
    • 2011-02-08
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多