我在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输入字段接收Date
和Time
。从HTML字段接收的日期看起来像:
4/30/2014
如何在Java中映射?在接收到Date
和Time
并正确映射它们之后,我将提交事务或更新表/条目。
可以在SimpleDateFormat对象中使用parse()方法:
SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy");
String dateInString = "4-30-1982"";
Date date = sdf.parse(dateInString);
System.out.println(date);
在PreparedStatement
或ResultSet
内的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部分的类似代码。