解决日期存储取值问题:
在数据库中插入带时分秒的时间需要用Timestamp。
1.数据库字段设置为timestamp类型
2.vo层字段映射到java对象的属性,类型对应为Timestamp
3.controll控制层设置时间,采用如下方法
4.表现层,如果用jstl取值,方法如下:
5.程序媛都是善良的,如果能帮助到你,拿去不谢!
个人分析:
通常我们使用日期时候,会涉及到这三个类
Java.sql.Date,java.sql.Time,java.sql.Timestamp
而这三个都是java.util.Date的子类(包装类)。因为他们的toString()方法不一样,所以
java.sql.Date显示年月日、
java.sql.Time显示时分秒、
java.sql.TimeStamp显示年月日时分秒纳秒。
所以如果想要取得完整的日期,最好使用TimeStamp.
timestamp拓展:
TimeStamp获取秒数
Timestamp scurrtest = new Timestamp(System.currentTimeMillis());
System.out.println("scurrtest = "+scurrtest);
long sqlLastTime = scurrtest.getTime();// 直接转换成long
System.out.println("sqlLastTime = "+sqlLastTime); //毫秒数
System.out.println("sqlLastTime/1000 = "+sqlLastTime/1000); // 秒数
String转化为Timestamp:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义格式,不显示毫秒
Timestamp now = new Timestamp(System.currentTimeMillis());
//获取系统当前时间
String str = df.format(now);
String转化为Timestamp:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String time = df.format(new Date());
Timestamp ts = Timestamp.valueOf(time);