java.util.Calendar中的陷阱
需求: 从输入框得到用户分开输入的年、月、日,将信息做为Date类型插入数据库
解决一:
InputBean bean = new InputBean(); // 封装用户输入
// 获取用户输入,封装于bean对象中
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR,bean.getYear()); // Year
cal.set(cal.MONTH,bean.getMonth()); // Month
cal.set(cal.DAY_OF_MONTH,bean.getDay()); // Day
// 数据库操作
陷阱: Calendar中的MONTH字段和数组下标一样,从0开始,0代表Calendar.JANUARY,1代表Calendar.FEBUARY……12代表次年Calendar.JANUARY。因此用户输入的月份在置入Calendar对象之前必须进行处理,即减一。
解决二:
InputBean bean = new InputBean(); // 封装用户输入
// 获取用户输入,封装于bean对象中
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR,bean.getYear()); // Year
cal.set(cal.MONTH,bean.getMonth() - 1); // Month
cal.set(cal.DAY_OF_MONTH,bean.getDay()); // Day
// 数据库操作