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;
}