在做数据的插入和更新的时候,我遇到一个关于java中new Date()使用小问题:
比如进行插入操作:sql=insert into 表名 (id,record_date) values(?,?)
,解析sql时对应入参(sql,id,new Date())
这样的操作数据库时间数据是24小时制的,属于正常。
更新操作updatesql=update 表名 set record_date=? where id=?
这样入参(updatesql,new Date(),id)
也是正常的24小时制时间
但是如果直接这样update 表名 set record_date='"+new Date()+"' where id='"+id+"'
这样的解析sql就会报错了,
一开始,我以为是12和24小时制的问题,然后我使用这个方法转化
public String date(Date date){
//24小时制HH 、12小时制hh
SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”) ;
String time = dateFormat.format(date);
return time;
}
sql语句:update 表名 set record_date='"+xx.date(new Date())+"' where id='"+id+"'
这样的解析sql的时间是12小时制的,我不明白问题在哪,正常不应该是24小时制了吗,经过了转化啊。
例如当前时间是15:14(24小时制),执行上面操作数据更新时间就为03:14(12小时制)