/** * @author xiaoqun.yi 日期工具类 */ public class DateTimeHelper { /** * 获取当前年 * @return yyyy */ public static String getCurrentYear() { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间 String year = String.valueOf(c.get(Calendar.YEAR)); // 获取年 return year; } /** * 获取当前月 * 格式:mm */ public static String getCurrentMonth() { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间 String month = String.valueOf(c.get(Calendar.MONTH) + 1).length() == 2 ? String .valueOf(c.get(Calendar.MONTH) + 1) : "0" + String.valueOf(c.get(Calendar.MONTH) + 1); return month; } /** * 获取当前天 * @return dd 不足10前面补0 */ public static String getCurrentDay() { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间 String day = String.valueOf(c.get(Calendar.DAY_OF_MONTH)).length() == 2 ? String .valueOf(c.get(Calendar.DAY_OF_MONTH) + 1) : "0" + String.valueOf(c.get(Calendar.DAY_OF_MONTH)); return day; } /** * 获取当前小时 * @return mm 不足10前面补0 */ public static String getCurrentHour() { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间 String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY)).length() == 2 ? String .valueOf(c.get(Calendar.HOUR_OF_DAY)) : "0" + String.valueOf(c.get(Calendar.HOUR_OF_DAY)); return hour; } /** * 获取当前分钟 * @return mm 不足10前面补0 */ public static String getCurrentMinute() { Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间 String min = String.valueOf(c.get(Calendar.MINUTE)).length() == 2 ? String .valueOf(c.get(Calendar.MINUTE)) : "0" + String.valueOf(c.get(Calendar.MINUTE)); return min; } /** * 获取当前日期 * @return yyyy-MM-dd */ public static String getCurrentDate(){ Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new Timestamp(calendar.getTime().getTime())); } /** * * @param month 前几个月 * @param day 前几天 * @return yyyyMMdd */ public static String getBeforeDate(int month,int day){ Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); calendar.add(Calendar.MONTH, month); //得到前一 calendar.add(Calendar.DATE, day); //得到前一 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new Timestamp(calendar.getTime().getTime())); } /** * 格式显示日期 * @param str yyyyMMdd * @return yyyy年MM月dd日 */ public static String formtDate(String str){ return str.substring(0,4)+"年"+str.substring(4,6)+"月"+str.substring(6,8)+"日"; } /** * 获取系统当期时间, * @return Timestamp */ public static Timestamp getNowTimestamp() { return new Timestamp(System.currentTimeMillis()); } /** * 系统当期时间 * @return Date */ public static Date getNowDate() { return new Date(System.currentTimeMillis()); } /** * 获取当期时间字符串 * @param pattern 格式化字符串 * @return */ public static String getNowDateStr(String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(new Date(System.currentTimeMillis())); } /** * 时间转化 字符串转换成时间 * @param dateStr 字符串 * @param pattern 格式 * @return Timestamp */ public static Timestamp convertToTimestamp(String dateStr,String pattern) { try { SimpleDateFormat sdf = new SimpleDateFormat(pattern); Date date = sdf.parse(dateStr); return new Timestamp(date.getTime()); } catch(Exception e) { e.printStackTrace(); } return null; } /** * * @param timeMillis 时间转换字符串 * @param pattern * @return */ public static String converToStr(long timeMillis, String pattern) { Timestamp t = new Timestamp(timeMillis); return convert(t, pattern); } /** * 时间转化 字符串转换成时间 * @param dateStr * @param pattern * @return Date */ public static Date convertToDate(String dateStr, String pattern) { try { SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.parse(dateStr); } catch(Exception e) { e.printStackTrace(); } return null; } /** * 时间转化 时间字符串 * @param timestamp * @param pattern * @return String */ public static String convert(Timestamp timestamp, String pattern) { if (timestamp == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(new Date(timestamp.getTime())); } /** * 时间转化 根据格式转换时间为字符串 * @param date * @param pattern * @return String */ public static String conver(Date date, String pattern) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(date); } /** * 时间增加 天数 * @param currentmi * @param day * @return Date */ public static Date addDateTime(long currentmi, int day) { Calendar cl = Calendar.getInstance(); cl.setTimeInMillis(currentmi); cl.add(Calendar.DATE, day); return new Date(cl.getTimeInMillis()); } /** * 给时间增加一定天数 * @param currentmi * @param day 增加的天数 * @param pattern * @returnn String */ public static String addDateTimeToStr(long currentmi, int day,String pattern) { Calendar cl = Calendar.getInstance(); cl.setTimeInMillis(currentmi); cl.add(Calendar.DATE, day); long result = cl.getTimeInMillis(); return conver(new Date(result), pattern); } /** * 获取当前月的第一天 * @return Timestamp */ public static Timestamp getFirstDayOfMonth() { Calendar cal = Calendar.getInstance(); cal.set(GregorianCalendar.DAY_OF_MONTH, 1); return new Timestamp(cal.getTime().getTime()); } /** * 获取当前月第一天 * @return yyyyMMdd */ public static String getCurrentMonthFirstDay1(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(getFirstDayOfMonth()); } /** * 获取当前月第一天 * @return yyyy年MM月dd日 */ public static String getCurrentMonthFirstDay2(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM年dd日"); return sdf.format(getFirstDayOfMonth()); } /** * 获取当月的最后一天 * @return Timestamp */ public static Timestamp getLastDayOfMonth() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.DATE, 1); cal.roll(Calendar.DATE, -1); return new Timestamp(cal.getTime().getTime()); } /** * 获取当前月最后一天 * @return yyyyMMdd */ public static String getCurrentMontLastDay1(){ Calendar cal = Calendar.getInstance(); cal.set(Calendar.DATE, 1); cal.roll(Calendar.DATE, -1); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(cal.getTime()); } /** 获取当月的最后一天 * 返回yyyy年mm月dd日 * @return yyyy年MM月dd日 */ public static String getCurrentMontLastDay2(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); return sdf.format(getLastDayOfMonth()); } /** * 得到今天的前一天 * @return yyyyMMdd */ public static String getOneDayfore(){ Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); calendar.add(Calendar.DATE, -1); //得到前一 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(new Timestamp(calendar.getTime().getTime())); } }
定义公共引入的文件:include.inc
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!-- 引入日期工具类 --> <%@ page language="java" import="com.chinacreator.code.utils.DateTimeHelper" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% //上下文路径 String contextPath=request.getContextPath(); //主题路径 String themePath="/template/themes/default"; String filePath="jsp/fileupload/"; String year=DateTimeHelper.getCurrentYear(); String month=DateTimeHelper.getCurrentMonth(); String day=DateTimeHelper.getCurrentDay(); String hour=DateTimeHelper.getCurrentHour(); String minute=DateTimeHelper.getCurrentMinute(); String currentDay=DateTimeHelper.getCurrentDate();//获取系统当前日期格式yyyy-mm-dd String beforeOneDay=DateTimeHelper.getBeforeDate(0,-1);//获取前一天日期格式yyyy-mm-dd String nextOneDay=DateTimeHelper.getBeforeDate(0,1);//获取今天的后一天的日期yyyy-mm-dd pageContext.setAttribute("themePath",themePath); pageContext.setAttribute("contextPath",contextPath); pageContext.setAttribute("filePath",filePath); pageContext.setAttribute("year",year); pageContext.setAttribute("month",month); pageContext.setAttribute("day",day); pageContext.setAttribute("hour",hour); pageContext.setAttribute("minute",minute); pageContext.setAttribute("hour",hour); pageContext.setAttribute("minute",minute); pageContext.setAttribute("currentDay",currentDay); pageContext.setAttribute("beforeOneDay",beforeOneDay); pageContext.setAttribute("nextOneDay",nextOneDay); %> <!-- jquery库 --> <script type="text/javascript" src="${contextPath}${themePath}/js/jquery-1.4.2.js"></script> <!-- 分页js --> <script type="text/javascript" src="${contextPath}${themePath}/js/paging.js"></script> <!-- 公共封装js --> <script type="text/javascript" src="${contextPath}${themePath}/js/common.js"></script> <!-- 验证身份证 --> <script type="text/javascript" src="${contextPath}${themePath}/js/checkidcard.js"></script> <!-- 主样式 --> <link rel="stylesheet" href="${contextPath}${themePath}/css/layout.css" type="text/css"></link> <!-- 日期插件 --> <script type="text/javascript" src="${contextPath}/plugs/My97DatePicker/WdatePicker.js"></script> <!--图表插件 非常好看的fuctionchart flash动画图表,做统计分析 --> <script type="text/javascript" src="${contextPath}/plugs/FusionCharts/JSClass/FusionCharts.js"></script> <!-- ztree插件 --> <script type="text/javascript" src="${contextPath}/plugs/ztree/js/jquery.ztree.all-3.5.min.js"></script> <script> var themePath="<%=themePath%>"; var contextPath="<%=contextPath%>"; var filePath="<%=filePath%>"; var year="<%=year%>"; var month="<%=month%>"; var day="<%=day%>"; var hour="<%=hour%>"; var minute="<%=minute%>"; var currentDay="<%=currentDay%>"; var beforeOneDay="<%=beforeOneDay%>"; var nextOneDay="<%=nextOneDay%>"; </script>
Jsp页面引入:
<%@ include file="/template/include.inc"%>
包含这个文件后就获取设置属性值,引入的样式,js文件,定义的全局的js变量了
公共查询条件Bean:
在java类中
bean继承BaseQuery
/** * *@author xiaoqun.yi */ public class BaseQuery implements Serializable { /** * */ private static final long serialVersionUID = -2128648445206020540L; // 查询条件用 private String startDate; private String endDate; private String keywords; private String dept_name; private String emp_name; public String getStartDate() { return startDate; } public void setStartDate(String startDate) { this.startDate = startDate; } public String getEndDate() { return endDate; } public void setEndDate(String endDate) { this.endDate = endDate; } public String getKeywords() { return keywords; } public void setKeywords(String keywords) { this.keywords = keywords; } public String getDept_name() { return dept_name; } public void setDept_name(String dept_name) { this.dept_name = dept_name; } public String getEmp_name() { return emp_name; } public void setEmp_name(String emp_name) { this.emp_name = emp_name; } }
时间比较使用字符串yymmdd既方便比较又不需要转换
处罚时间: 最大时间不能大于当前时间,这里使用maxDate:‘currentDay‘这是前面引入文件包含的currentDay,currentDay当前时间为服务器时间
,第二个日期大于第一个日期,日期显示值为:yyyy-mm-dd 日期实际值为yyyymmdd (日期为服务器时间)
<input type="text" id="date01" class="tdInput_80" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘startDate‘,maxDate:‘#F{$dp.$D(\‘date02\‘)||\‘%y-%M-{%d}\‘}‘,readOnly:true})"/> -- <input type="hidden" id="startDate" name="punish.startDate" /> <input type="text" id="date02" class="tdInput_80" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘endDate‘,minDate:‘#F{$dp.$D(\‘date01\‘)}‘, maxDate:‘currentDay‘,readOnly:true})"/> <input type="hidden" id="endDate" name="punish.endDate" />
sql:这是使用的是xml,其实不用xml也一样,条件判断不为空就加上条件
#if($startDate && !$startDate.equals(""))
and p.peccancy_time>=#[startDate]
#end
#if($endDate && !$endDate.equals(""))
and p.peccancy_time<=#[endDate]
#end
选择的日期不能大于当前日期(日期为服务器时间) maxDate:‘currentDay‘
<input type="text" id="checkdate_add" class="tdInput" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘, vel:‘checkdate‘,maxDate:‘currentDay‘,readOnly:true})"/> <input type="hidden" id="checkdate" name="checkreform.checkdate" />
选择的最小日期大于当前日期,后面的日期大于前面的日期,日期格式为:yyyy-mm-dd 值为yyyymmdd (日期为服务器时间)
<input type="text" id="date01" class="tdInput" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘timelimit‘,minDate:‘currentDay‘,maxDate:‘#F{$dp.$D(\‘date02\‘)}‘,readOnly:true})"/> <input type="hidden" id="timelimit" name="checkreform.timelimit" /> <input type="text" id="date02" class="tdInput"class="tdInput" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘acceptdate‘,minDate:‘#F{$dp.$D(\‘date01\‘)}‘,readOnly:true})"/> <input type="hidden" name="checkreform.acceptdate" id="acceptdate" />
设置默认服务器时间的前一天时间 (日期为服务器时间)
<input type="text" id="format_chcekdate_add" value="${beforeOneDay}" class="tdInput" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘chcekdate_add‘,maxDate:‘currentDay‘,readOnly:true})"/> <input type="hidden" id="chcekdate_add" name="devicecheck.checkdate" />
设置默认服务器时间的后一天时间 (日期为服务器时间)
<input type="text" class="tdInput" value="${nextOneDay}" onfocus="WdatePicker({dateFmt:‘yyyy-MM-dd‘,realDateFmt:‘yyyyMMdd‘,vel:‘format_dutydate‘,minDate:‘%y-%M-{%d+1}‘,readOnly:true})"/> <input type="hidden" name="leaderDuty.dutydate" id="format_dutydate" />
sql显示日期(oracle)日期存数据库用字符串用yyyymmdd是为了方便比较
substr(r.timelimit,1,4)||‘-‘||substr(r.timelimit,5,2)||‘-‘||substr(r.timelimit,7,2) as timelimit,
时间:显示为hh:实际值为:hhmi是为了两个时间段的比较方便 (日期为服务器时间)
<input type="text" id="date03" class="tdInput" onfocus="WdatePicker({dateFmt:‘HH:mm‘,readOnly:true})" / <input type="hidden" id="starttime_update" name="dutytime.starttime" /> <input type="text" id="date04" class="tdInput" onfocus="WdatePicker({dateFmt:‘HH:mm‘,readOnly:true})" /> <input type="hidden" id="endtime_update" name="dutytime.endtime" />
var starttime=$("#date01").val();
starttime=starttime.substring(0,2)+starttime.substring(3,5);
var endtime=$("#date02").val();
endtime=endtime.substring(0,2)+endtime.substring(3,5);
$("#starttime_add").val(starttime);
$("#endtime_add").val(endtime);
sql查询显示(oracle)
substr(t.starttime,1,2)||‘:‘||substr(t.starttime,3,2) as starttime,
substr(t.endtime,1,2)||‘:‘||substr(t.endtime,3,2) as endtime,