将日期和时间映射到MySQL

时间:2014-04-23 17:26:08

标签: java mysql hibernate date time

我在MySQL创建了一个表格:

CREATE TABLE scheduled(sid INT,id INT,tweet VARCHAR(255),sdate DATE, 
          stime TIME,PRIMARY KEY(sid),FOREIGN KEY(id) REFERENCES usercred(id));

我从HTML输入字段中收到DateTime。从HTML字段收到的日期如下:

4/30/2014

如何在Java中映射?收到DateTime之后,在正确映射它们之后,我将提交事务或更新表/条目。

2 个答案:

答案 0 :(得分:0)

PreparedStatementResultSet内的JDBC层中,您使用映射java.sql.Date(对于SQL-DATE)和java.sql.Time(对于SQL-TIME)。然后你可以包装两种类型:

java.sql.Date sqlDate = ...; // from ResultSet
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); // or M/d/yyyy
String htmlFormat = df.format(sqlDate);

相反:

String htmlFormat = ...;
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); // or M/d/yyyy
java.util.Date d = df.parse(htmlFormat);
java.sql.Date sqlDate = new java.sql.Date(d.getTime());
// use result in PreparedStatement for INSERT or UPDATE

注意:这两种方法都使用运行此代码的服务器的标准时区。如有疑问,您应该设置时区UTC。类似的代码为TIME部分。

答案 1 :(得分:0)

可以使用SimpleDateFormat对象中的parse()方法:

SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy");
String dateInString = "4-30-1982"";     
Date date = sdf.parse(dateInString);
System.out.println(date);