记录一些开发中遇到的日期操作。
1.获取距离今天指定日期间隔的日期
1 /** 2 * 获取距离今天指定日期间隔的日期,正数表示往未来的间隔日期,负数表示过去的间隔日期 3 * 返回形式为YYYY-MM-DD格式的日期 4 * @author mmq 2014年11月13日17:38:48 5 * @return String 6 */ 7 public static String getDateByDifferFromToday(int differ){ 8 Calendar c = Calendar.getInstance(); 9 c.add(Calendar.DAY_OF_MONTH, differ); 10 Date targetDate = c.getTime(); 11 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss"); 12 String dateString = sdf.format(targetDate); 13 dateString =dateString.substring(0,10);//获取格式为YYYY-MM-DD的日期。 14 return dateString; 15 }
2.获取日期间隔天数
/** * 获取两个日期之间的日期间隔天数 * * @param date1 * @param date2 * @return */ public static int daysBetweenCount(Date date1,Date date2) { Calendar cal = Calendar.getInstance(); cal.setTime(date1); long time1 = cal.getTimeInMillis(); cal.setTime(date2); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); }
3.util.Date和sql.Date的转换
1 /** 2 * 将java.util.Date日期转化为java.sql.Date 3 * 4 * @param utilDate 5 * java.util.Date日期 6 * @return java.sql.Date日期 7 */ 8 public static java.sql.Date converUtilToSql(java.util.Date utilDate) { 9 return new java.sql.Date(utilDate.getTime()); 10 } 11 12 /** 13 * 将java.sql.Date日期转化为java.util.Date 14 * 15 * @param sqlDate 16 * java.sql.Date日期 17 * @return java.util.Date日期 18 */ 19 public static java.util.Date converSqlToUtil(java.sql.Date sqlDate) { 20 return new java.util.Date(sqlDate.getTime()); 21 }
4.Javascript获取指定格式的日期
1 Date.prototype.format = function(format){ //获取指定形式的日期 2 var o = { 3 "M+" : this.getMonth()+1, //month 4 "d+" : this.getDate(), //day 5 "h+" : this.getHours(), //hour 6 "m+" : this.getMinutes(), //minute 7 "s+" : this.getSeconds(), //second 8 "q+" : Math.floor((this.getMonth()+3)/3), //quarter 9 "S" : this.getMilliseconds() //millisecond 10 } 11 if(/(y+)/.test(format)) { 12 format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 13 } 14 for(var k in o) { 15 if(new RegExp("("+ k +")").test(format)) { 16 format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); 17 } 18 } 19 return format; 20 }