日期处理相关

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;
 }
原文地址:https://www.cnblogs.com/xtreme/p/4994146.html