java - 插入日期并得到错误的格式

标签 java sqlite datetime jdbc

我将当前日期插入表格中。我有一个获取当前日期的方法:

private static java.sql.Date getCurrentDate() {
        java.util.Date today = new java.util.Date();
        return new java.sql.Date(today.getTime());
     }
或者在某些情况下,我从字符串格式中获取日期,例如2016-10-12 然后我使用 action.setTodayInfo(session, getCurrentDate()); 调用此方法以将日期和一些 boolean 变量插入到表中

public void setTodayInfo(HttpSession session, Date date) 
            throws SQLException, ClassNotFoundException {

        System.out.println("Initialize today's info...");

        String sq = "INSERT INTO IsSELECTED (date, morning, noon, night) VALUES (?, ?, ?, ?)";

    try {       
        Class.forName(typeDB);
        c = DriverManager.getConnection(path);            
        stm = c.prepareStatement(sq);

        PreparedStatement stm = c.prepareStatement(sq);

        stm.setDate(1, date);
        stm.setBoolean(2, FALSE);
        stm.setBoolean(3, FALSE);
        stm.setBoolean(4, FALSE);

        int rowsAffected = stm.executeUpdate();

    } catch (SQLException e) { 
    System.out.println(e.getMessage());
    } finally {
    if (stm != null) {
        stm.close();
    }
    if (c != null) {
        c.close();
    }
}          
}

当我查看表格时,日期字段具有 1434473268231,而不是格式为 2015/06/16 的当天。

表格格式为:

CREATE TABLE "IsSELECTED"(
       "date" DATETIME PRIMARY KEY  NOT NULL  DEFAULT (CURRENT_DATE) ,
       "morning" BOOL NOT NULL  DEFAULT (0) ,
       "noon" BOOL NOT NULL  DEFAULT (0) ,
       "night" BOOL NOT NULL  DEFAULT (0) 
 )

最佳答案

存储时无需担心日期的格式。数据库将仅存储日期实例,您可以使用其 functions 之一在检索时对其进行格式化。

您还可以使用 Java使用 SimpleDateFormat 格式化检索日期

关于java - 插入日期并得到错误的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883996/

相关文章:

java - Google App Engine 类似生产环境

java - 无法从 JSP 执行 servlet,但可以从直接 URL 访问(mvc mysql tomcat)

sql - 坚持关系代数中的逻辑 SQL 查询优化(或在 WHERE 中)

python - 如何在数据库中的表本身上创建索引?

spring - 无法转换 1985-04-12T23 :20 into java. util.Date

java - 这个 java 单例类实现有什么问题?

java - 如何修复 "android.view.InflateException: Binary XML file line #23: Binary XML file line #23: Error inflating class fragment"

android - 我正在做一项作业,我必须在其中创建只读的 sqlite 数据库,而不会提示用户输入数据。

MySQL:记录之间的平均间隔

javascript - Kotlin JavaScript Date.now() 返回类型