获取系统时间按格式保存在数据库中
01
获取当前时间以规定格式输出:
Date date = new Date();
DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=df.format(date);
将自定义date存入数据库问题(精确到时分秒的情况):
1.实体类中声明Date类型变量(java.util.date);
2.action中声明String类型变量(因为一般datetimePicker传过来的是String);
3.将日期字符串转换成long类型并放入java.sql.Timestamp中。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date startTimeDate = new java.sql.Timestamp(sdf.parse(startTime).getTime());
注:java.sql.Timestamp会将转换成的long类型数据自动变成日期加时分秒的数据并存入数据库,但从数据库取出来时还是long类型数据,要显示格式化的日期到页面上还需要转换。
02
Mybatis框架中jdbcType="DATE" 和 jdbcType="TIMESTAMP" 两种类型的区别
也算不上是Mybatis的bug,只能说是特性,本来就是这么设置的,在连接oracle数据库的时候,当jdbcType="DATE"类型时,返回的时间只有年月日(yyyy-MM-dd)的,当jdbcType=“TIMESTAMP”的时候,返回的时间是年月日和时分秒(yyyy-MM-dd HH:mm:ss),参考下图:
以绑定时间和解绑时间为例:
1.1当绑定时间的jdbcType=“DATE”,解绑时间的为jdbcType=“TIMESTAMP”,xml文件设置如下:
1.2最终查询到的数据类型是DATE的数据只有年月日(yyyy-MM-dd),而TIMESTAMP的年月日和时分秒都有(yyyy-MM-dd HH:mm:ss),如下展示
2.1当两个时间都设为TIMESTAMP的时候,xml文件设置如下:
2.2两个时间数据都展示位年月日和时分秒(yyyy-MM-dd HH:mm:ss),结果如下: