日期处理相关 - “Fri Dec 11 00:00:00 CST 2015”日期格式解析
1、后台处理方式:
/* 精简版解析 - 推荐 */ String a= "Fri Dec 11 00:00:00 CST 2015"; Date d = new Date(a); String f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d); System.out.println(f); /* 稍繁版解析 */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class Test { public static void main(String[] args) { String str = "Mon Dec 31 00:00:00 CST 2012"; Date date = parse(str, "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); System.out.printf("%tF %<tT%n", date); } public static Date parse(String str, String pattern, Locale locale) { if(str == null || pattern == null) { return null; } try { return new SimpleDateFormat(pattern, locale).parse(str); } catch (ParseException e) { e.printStackTrace(); } return null; } }
2、前端js解析:
/* 精简版 - 推荐,其他版本就无视吧 O(∩_∩)O哈哈~ */
var d = new Date('Fri Dec 11 00:00:00 CST 2015'); var dateStr = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(); //或者 var d = new Date('Sun Mar 4 20:34:26 UTC+0800 2012'); // UTC+0800:表示北京时区 var str = d.toLocaleDateString().replace(/(\d+)[^\d](\d+)[^\d](\d+)[^\d]/, "$1-$2-$3") + d.toLocaleTimeString(); console.log(str); 结果: 2012年3月4号20:34:26
3、日期偏移计算
// 向前向后偏移几 function addDate(date,num){ var d = new Date(date); d = d.valueOf(); d = d + num * 24 * 60 * 60 * 1000; a = new Date(a); return d; } // 计算两天的相差天数 function differ(pre,after){ var preDate = new Date(pre), afterDate = new Date(after); var differTimes = preDate.valueOf() - afterDate.valueOf(); return Math.round(differTimes/(24 * 60 * 60 * 1000)); } /** * 按月偏移计算日期 * @param d : 日期字符串 '2017-12-12 12:26:36' * @param m : 偏移几个月 **/ function addMoth(d,m){ var suffic=d.substring(10), prefic=d.substring(0,10), ds=prefic.split('-'), _d=ds[2]-0; var nextM=new Date( ds[0],ds[1]-1+m+1, 0 ); var max=nextM.getDate(); d = new Date( ds[0],ds[1]-1+m,_d>max? max:_d ); return d.toLocaleDateString().match(/\d+/g).join('-')+suffic; }