在java中date对象也可以精确到秒,但是date对象无法操作年月日。calendar对象可以使用date对象中所有的方法,所以在java中不建议使用date对象而统一使用calendar对象,
java.util.Date now=java.util.Date()获得java中的当前时间,Date类实现了tostring方法。但是Date类对象插入数据库中时必须先转化为java.sql.Date类对象才能插入成功,但是插入数据库中后在数据库中保存的是年月日,只能保存到日期不能使用时间。要想保存的时间精确到秒必须使用java.sql.Timestamp类存储date对象。
java.sql.Timestamp date=java.sql.Timestamp(now.getTime());获得当前时间并保存到数据库中。
使用calendar对象也可以获得当前时间 Calendar now=new Calendar();通过calendar对象中定义的常量来获得对象中的时间int month=now.get(Calendar.MONTH);
int weekday=now.get(Calendar.DAY_OF_WEEK);calendar对象可以设置年月份调用方法set(year,month,day);
Date 和Calendar对象的转化:
Calendar类所拥有的getTime()和setTime()方法分别用来获取和设置日历对象所表示的时间点
Date time=calender.getTime();
calender.setTime(Date time);
这些方法在进行calendar和date对象转化时非常有用。假如已知年月日希望创建一个date对象,但是date类不知道如何操作日历所以必须首先创建一个calendar对象然后调用getTime()方法获得Date对象,
Calendar calendar=new Calendar(year,month,day);
Date date=calendar.getTime();
然后插入数据库中:
java.sql.Timestamp date1=new java.sql.Timestamp(date.getTime());
pstm.setTimestamp(index,date1);
pstm.executeUpdate();
baseDao.closeAll(rs,pstm,conn);
这样就完成将自定义的时间插入数据库中,不仅仅局限于可以在数据库中插入当前时间啦。
如何希望获得date对象中的年月日信息,必须先构造calendar对象然后调用calendar对象中的获得时间的方法
Calendar calendar=new Calendar();
calendar.setTime(Date date);
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
Calendar类中存在构造函数Calendar(year,month,day,hour,minutes,second);
另外注意Calendar对象中month取值范围为0-11所以所有的月份数加1为其对应的真正月份数
所以可以自定义时间点精确到秒后再调用getTime()方法得到java.util.Date对象然后转化为java.sql.Timestamp对象插入数据库中,这样在数据中保存的时间精确到秒,并且是自定义时间,当然对于插入当前时间不用这样复杂,可以直接获得,转化,插入即可实现。