将24小时格式转换为MySQL DATETIME格式

时间:2015-11-08 17:30:36

标签: java mysql

我正在尝试将24小时格式时间转换为日期时间格式,以便将其作为Datetime存储在Mysql中。我试过谷歌,但所有的结果都是相反的。例如,如何将21:30转换为日期时间格式?

2 个答案:

答案 0 :(得分:1)

您可以使用java.util.Date,定义所需的时间并使用java.sql.Date的构造函数,并在参数中使用函数.getTime(),如下所示:

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

java.sql.Date,只使用日,月和年,如果你想要小时,分钟和秒,你使用第二个变量,类型为java.sql.Time:

java.util.Date utilDate = new java.util.Date();
java.sql.Time sqlDate = new java.sql.Time(utilDate.getTime());

答案 1 :(得分:1)

MySQL DATETIME列存储日期和时间,而不仅仅是时间,并且您不会永远格式化为发送到数据库的字符串。使用PreparedStatement来阻止SQL Injection攻击。

示例1:

Date now = new Date();

String sql = "INSERT INTO MyTable ( MyDateTime ) VALUES ( ? )";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setTimestamp(1, new Timestamp(now.getTime()));
    stmt.executeUpdate();
}

示例2:

String dateText = "11/8/2015 1:35 PM";
Date dateTime = new SimpleDateFormat("M/d/yyyy h:mm a").parse(dateText);

String sql = "UPDATE MyTable SET MyDateTime = ? WHERE MyId = ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setTimestamp(1, new Timestamp(dateTime.getTime()));
    stmt.setInt(2, 1234);
    stmt.executeUpdate();
}