如何将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()));