我正在尝试将24小时格式时间转换为日期时间格式,以便将其作为Datetime存储在Mysql中。我试过谷歌,但所有的结果都是相反的。例如,如何将21:30转换为日期时间格式?
答案 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();
}