1.日期转换
1.1字符串类型转换成时间Date类型
1 /** 2 * 给定字符串 转变 为 Date 类型 3 * @param date 时间 4 * @param format 时间格式 如:yyyy-MM-dd HH:mm:ss 5 * @return 6 */ 7 public static Date stringToDate(String date,String format) { 8 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); 9 Date parse = null; 10 try { 11 parse = simpleDateFormat.parse(date); 12 } catch (ParseException e) { 13 e.printStackTrace(); 14 } 15 System.out.println(" parse= "+parse); 16 return parse; 17 }
重点掌握SimpleDateFormat类,多查看API
1.2.时间Date类型转换成字符串类型
1 /** 2 * 将时间类型转变为指定的字符串类型 3 * @param date 时间 4 * @param format 需要的字符串格式 如:yyyy-MM-dd HH:mm:ss 5 * @return 6 */ 7 public static String formatDate(Date date,String format) { 8 SimpleDateFormat dateFormat = new SimpleDateFormat(format); 9 String nowTime = dateFormat.format(date); 10 return nowTime; 11 }
1.3.日期加减运算
1 /** 2 * 日期加减运算 3 * @param date 对指定日期运算 4 * @param calendarField 对日期中的 5 *那个类型进行运算,比如1表示对年运算, 5表示对天进行运算 6 * @param amount 正数表示加,负数表示减 7 * @return 8 */ 9 public static Date add(Date date, int calendarField, int amount) { 10 Calendar c = Calendar.getInstance(); 11 c.setTime(date); 12 c.add(calendarField, amount); 13 return c.getTime(); 14 }
重点掌握SimpleDateFormat类,多查看API
2.实际案例应用
需求:在车票列表中显示发车时间,并且高级查询支持发车时间段查询,完成效果如下图:
选择时间时效果如图:
2.1在如果数据库没有发车时间字段这添加发车时间字段
2.2在模型对象中添加该字段
2.3mapper文件修改
a.添加该字段的获取
b.查询条件的条件,注意查询的最大时间和最小时间在查询对象中应该有
查询对象的最大时间与最小时间的添加
2.4前端处理
a.添加My97DatePicker包
My97DatePicke使用方式可以查看 :官网地址 http://www.my97.net/demo/index.htm
b.在页面中引入该包并使用
c.获取数据以及填充到页面的js函数
1 function query(_pageSize,_currentPage){ 2 // alert("------query------"); 3 //1.获取参数 4 var startStation = $("#startStation").val(); 5 var stopStation = $("#stopStation").val(); 6 //查询时间范围获取 7 var startTimeMin = $("#startTimeMin").val(); 8 var startTimeMax = $("#startTimeMax").val(); 9 //2.发送请求 10 var params = { 11 // startStation:startStation, 12 stopStation:stopStation, 13 _pageSize:_pageSize,//分页需要的数据 14 _currentPage:_currentPage//分页需要的数据 15 }; 16 if (null!=startStation && ''!=startStation){//开始车站有值的时候才传递参数 17 params['startStation']=startStation; //动态向json中添加参数 18 } 19 if (null!=startTimeMin && ''!=startTimeMin){//最小时间 20 params['startTimeMin']=startTimeMin; 21 } 22 if (null!=startTimeMax && ''!=startTimeMax){//最大时间 23 params['startTimeMax']=startTimeMax; 24 } 25 var url = '/ticket2/data3'; 26 jQuery.ajax({ 27 type: 'POST', 28 contentType: 'application/x-www-form-urlencoded', 29 url: url, 30 data: params, 31 dataType: 'json', 32 success: function (data) { 33 //取出列表 34 var ticketList = data.list; 35 //取出分页数据 36 var currentPage= data.currentPage; 37 var count= data.count; 38 var pageSize= data.pageSize; 39 var totalPage= data.totalPage; 40 var html='<tr>'+ 41 '<td>编号</td>'+ 42 '<td>开始车站</td>'+ 43 '<td>到达车站</td>'+ 44 '<td>发车时间</td>'+ 45 '<td>余票数</td>'+ 46 '<td>线路类型</td>'+ 47 '<td>操作</td>'+ //添加购票按钮 48 '</tr>'; 49 //解析数据到table表中 50 for (var i=0;i<ticketList.length;i++){ 51 //取出一个对象 java里面的内省机制 52 var ticket = ticketList[i]; 53 var id = ticket.id; 54 var startStation= ticket.startStation; 55 var stopStation= ticket.stopStation; 56 //发车时间 57 var startTime = ticket.startTime; 58 var standby = ticket.standby; 59 var typeName = ticket.typeName; 60 html+='<tr>'+ 61 '<td>'+id+'</td>'+ 62 '<td>'+startStation+'</td>'+ 63 '<td>'+stopStation+'</td>'+ 64 '<td>'+startTime+'</td>'+ 65 '<td>'+standby+'</td>'+ 66 '<td>'+typeName+'</td>'+ 67 '<td><button onclick="buyTicket('+id+')">购买</button></td>'+ //添加购票按钮 68 '</tr>'; 69 } 70 //3.填充数据 71 //填充列表 72 $("#ticketList").html(html); 73 //填充分页数据 74 $("#totalPage").html(totalPage); 75 $("#pageSize").html(pageSize); 76 $("#count").html(count); 77 $("#currentPage").html(currentPage); 78 }, 79 error: function (data) { 80 alert("失败啦"); 81 } 82 }); 83 }
重启项目搞定!