如何将Javadate存储到MySQLdate时间…?

任何机构可以告诉我如何将Javadate存储到MySQLdate时间…?

当我正在尝试这样做…只有date存储和时间保持00:00:00在这样的Mysqldate商店…

2009-09-22 00:00:00 

我不仅要约会,而且还要时间…像

 2009-09-22 08:08:11 

我使用弹簧mydomain类JPA(hibernate)使用java.util.Date,但我已经创build了使用手写查询表…

这是我创造的声明

 CREATE TABLE ContactUs (id BIGINT auto_increment, userName VARCHAR(30), email VARCHAR(50), subject VARCHAR(100), message VARCHAR(1024), messageType VARCHAR(15), contactUsTime datetime, primary key(id)) TYPE=InnoDB; 

请参阅链接:

http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion

下面的代码刚刚解决了这个问题:

 java.util.Date dt = new java.util.Date(); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(dt); 

这个' currentTime '被插入到types为DateTime的列中,并且成功。

@Temporal(TemporalType.TIMESTAMP)注释你的字段(或者getter @Temporal(TemporalType.TIMESTAMP) ,像这样:

 public class MyEntity { ... @Temporal(TemporalType.TIMESTAMP) private java.util.Date myDate; ... } 

这应该够了吧。

你可能使用java.sql.Date ? 虽然它具有毫秒粒度作为Java类(它是java.util.Date一个子类,是糟糕的devise决策),但它将被JDBC驱动程序解释为没有时间分量的date。 您必须改用java.sql.Timestamp

可能是因为你的javadate格式与mysql format不同( YYYY-MM-DD HH:MM:SS

做这个

  DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println(dateFormat.format(date)); 

你会得到2011-07-18 +时间格式

 long timeNow = Calendar.getInstance().getTimeInMillis(); java.sql.Timestamp ts = new java.sql.Timestamp(timeNow); ... preparedStatement.setTimestamp(TIME_COL_INDEX, ts); 

mysql datetime – > GregorianCalendar

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = format.parse("2012-12-13 14:54:30"); // mysql datetime format GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(date); System.out.println(calendar.getTime()); 

GregorianCalendar – > MySQL的date时间

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String string = format.format(calendar.getTime()); System.out.println(string); 
 java.util.Date date = new Date(); Object param = new java.sql.Timestamp(date.getTime()); preparedStatement.setObject(param); 

使用下面的代码将date插入到MySQL中。 我们可以通过设置STR_TO_DATE(?, '%l:%i %p')参数来帮助数据库识别我们的date,而不是改变我们的date格式来满足MySql的要求。

例如,2014-03-12可以表示为STR_TO_DATE('2014-03-12', '%Y-%m-%d')

 preparedStatement = connect.prepareStatement("INSERT INTO test.msft VALUES (default, STR_TO_DATE( ?, '%m/%d/%Y'), STR_TO_DATE(?, '%l:%i %p'),?,?,?,?,?)"); 

其实你可能不使用SimpleDateFormat,你可以使用这样的东西;

  @JsonSerialize(using=JsonDateSerializer.class) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy HH:mm:ss") private Date blkDate; 

这样,您可以直接获取指定格式的date。

它非常简单,但在这个答案的条件是在MySQL 列数据types是date时间 ,你想发送数据从Java代码到MySQL:

java.util.Date dt = new java.util.Date();
whatever your code object may be .setDateTime(dt);

重要的是只需selectdate,其格式已经按照MySQL格式发送,无需进一步修改。

这个对我有用 !!

在mysql表中

 DATETIME 

在实体中:

 private Date startDate; 

正在处理中:

 objectEntity.setStartDate(new Date()); 

在preparedStatement:

 pstm.setDate(9, new java.sql.Date(objEntity.getStartDate().getTime()));