问 题
Java中
new Date(); date类型的结果,存入msyql数据库中,只有年月日,没有时分秒。
mysql用datetime,timestamp,都不行,不知道java的date类型怎么能把时分秒,也存进去。
SurveyBank bank = new SurveyBank();
bank.setBank_name(bankName);
bank.setCreatetime(new Date());
SurveyDao.add(bank); //调用dao的add,就是hibernate的save方法,
mysql中createtime字段:2016-10-20 00:00:00
已解决:
1.获取当前时间字符串
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String nowStr = df.format(new Date());// new Date()为获取当前系统时间
2.时间字符串转timestamp
Timestamp now = Timestamp.valueOf(nowStr);
3.msyql字段用timestamp
4.实体类字段对应
@Type(type="date")
@Column(name = "createtime")
public Timestamp getCreatetime() {
return createtime;
}
public void setCreatetime(Timestamp createtime) {
this.createtime = createtime;
}
成功,然后把采纳的demo封装下,以后就这样用了
解决方案
这样demo可以吗?
/**
* @param date
* @return 格式化后的时间用于数据库传参,格式有误的话则会返回当前时间
*/
public static Timestamp stringToTimestamp(String date) {
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = date + " " + "00:00:00";
try {
ts = Timestamp.valueOf(tsStr);
// System.out.println(ts);
} catch (Exception e) {
e.printStackTrace();
}
return ts;
}
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起