java - 如何将日期对象存储到MySql中的HH :MM format?

标签 java datetime

我正在尝试从字符串示例 13:30(HH:MM) 创建日期对象(格式:HH:MM)。我想将 HH:MM 保存在 MySql 表中,但下面的代码在列中输入一些随机值(例如:'6828-00-00 00:00:00')。如何以 HH:MM 格式将日期值存储在 Mysql 中?

Date date = null; 
String afternoon = "13" +":" +"30";
String time = afternoon;


try {                               
 date = new SimpleDateFormat("HH:mm").parse(time);
}
catch (ParseException e) {
    e.printStackTrace();
}

long d = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(d);

 String sql3 = "CREATE TABLE IF NOT EXISTS DateTime"+
                       "(UniqueBusID VARCHAR(255) not NULL, " +
                       " Timenings DATETIME DEFAULT NULL ,"+
                       " PRIMARY KEY ( UniqueBusID ))";

stmt.executeUpdate(sql3);
stmt.executeUpdate("INSERT INTO DateTime " + "VALUES ('Test3','"+sqlDate.getTime()+"')");

最佳答案

编辑

您必须使用java.sql.Timestamp而不是java.sql.Date。从 javadoc 来看,

"To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated."

所以只需替换该行

java.sql.Date sqlDate = new java.sql.Date(d);

java.sql.Timestamp sqlTime = new Timestamp(d);
<小时/>

你做得很好,除了你用来将String解析为Date的模式,即HH:mm,这是错误的。

正确格式:H:mm (H: 0-23; h:1-12)

try {                               
 date = new SimpleDateFormat("H:mm").parse(time);
}

这是 Date and Time Patterns 的引用

关于java - 如何将日期对象存储到MySql中的HH :MM format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923601/

相关文章:

java - ConcurrentHashMap 有什么缺点吗?

java - Openfire GitHub Eclipse

java - 如何在多个jsp页面之间共享一个存储的对象?

MySQL 数据库错误 : Incorrect datetime value: '2015/06/08' for function str_to_date

c# - 如何在 C# 中将时间划分为相等的槽

r - 根据r中的开始时间和结束时间计算白天和晚上的小时数

java - Android 常见的具有多个调用者的异步任务

Java 编程 - 为应用程序保存/读取数据的最佳方式

powershell - 如何基于另一个格式化的时间戳生成时间戳

java - 来自java的日期格式问题