精华内容
下载资源
问答
  • javascript Date format(js日期格式化)

    万次阅读 多人点赞 2010-06-02 19:04:00
    这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用...

    方法一:这个很不错,好像是 csdn 的 Meizz 写的:

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; }

     

     

    调用方法:

    var time1 = new Date().format("yyyy-MM-dd HH:mm:ss"); var time2 = new Date().format("yyyy-MM-dd");

     

    方法二:

    <mce:script language="javascript" type="text/javascript"><!-- /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 */ Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时 "H+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; var week = { "0" : "/u65e5", "1" : "/u4e00", "2" : "/u4e8c", "3" : "/u4e09", "4" : "/u56db", "5" : "/u4e94", "6" : "/u516d" }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]); } for(var k in o){ if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; } var date = new Date(); window.alert(date.pattern("yyyy-MM-dd hh:mm:ss")); // --></mce:script>

     

    方法三:

    Date.prototype.format = function(mask) { var d = this; var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replace(/"[^"]*"|'[^']*'|/b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])/1?|[lLZ])/b/g, function($0) { switch($0) { case 'd': return d.getDate(); case 'dd': return zeroize(d.getDate()); case 'ddd': return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()]; case 'dddd': return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()]; case 'M': return d.getMonth() + 1; case 'MM': return zeroize(d.getMonth() + 1); case 'MMM': return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()]; case 'MMMM': return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()]; case 'yy': return String(d.getFullYear()).substr(2); case 'yyyy': return d.getFullYear(); case 'h': return d.getHours() % 12 || 12; case 'hh': return zeroize(d.getHours() % 12 || 12); case 'H': return d.getHours(); case 'HH': return zeroize(d.getHours()); case 'm': return d.getMinutes(); case 'mm': return zeroize(d.getMinutes()); case 's': return d.getSeconds(); case 'ss': return zeroize(d.getSeconds()); case 'l': return zeroize(d.getMilliseconds(), 3); case 'L': var m = d.getMilliseconds(); if (m > 99) m = Math.round(m / 10); return zeroize(m); case 'tt': return d.getHours() < 12 ? 'am' : 'pm'; case 'TT': return d.getHours() < 12 ? 'AM' : 'PM'; case 'Z': return d.toUTCString().match(/[A-Z]+$/); // Return quoted strings with the surrounding quotes removed default: return $0.substr(1, $0.length - 2); } }); };

    展开全文
  • new Date() 日期格式处理

    万次阅读 多人点赞 2017-12-25 16:09:16
    1.日期格式转为日期标准字符串:2015-03-19 2.js方法返回值:2015-03-19 12:00:00 调用:formatDate(Date()) formatDate(Date()) 3.时间戳转为日期格式 4.时间格式字符串转为时间戳(毫秒) 如何将2015-03-12 12:00...

    Date 对象常用API

    var myDate = new Date();  
    myDate.getYear(); //获取当前年份(2位)  
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)  
    myDate.getMonth(); //获取当前月份(0-11,0代表1月) 所以获取当前月份是 myDate.getMonth()+1;   
    myDate.getDate(); //获取当前日(1-31)  
    myDate.getDay(); //获取当前星期X(0-6,0代表星期天)  
    myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)  
    myDate.getHours(); //获取当前小时数(0-23)  
    myDate.getMinutes(); //获取当前分钟数(0-59)  
    myDate.getSeconds(); //获取当前秒数(0-59)  
    myDate.getMilliseconds(); //获取当前毫秒数(0-999)  
    myDate.toLocaleDateString(); //获取当前日期  
    var mytime = myDate.toLocaleTimeString(); //获取当前时间  
    myDate.toLocaleString( ); //获取日期与时间  
    

    JS获取当前时间戳的方法:

    Date.parse(new Date()); // 不推荐; 毫秒改成了000显示  
    new Date().valueOf();
    new Date().getTime();
    +new Date().getTime();
    

    js中单独调用 new Date(); 显示这种格式Fri Aug 28 2020 11:03:24 GMT+0800 (中国标准时间)
    但是用 new Date() 参与计算会自动转换为从 1970.1.1 开始的毫秒数

    将字符串形式的日期转换成日期对象:

    var strTime="2011-04-16"; // 字符串日期格式             
    var date= new Date(Date.parse(strTime.replace(/-/g,  "/"))); // 转换成 Data();  
      
    new Date(); // 参数可以为整数; 也可以为字符串; 但格式必须正确  
    new Date(2009,1,1);
    new Date("2009/1/1");
    new Date("2009-1-1"); 
      
    new Date( year, month, date, hrs, min, sec)  // 按给定的参数创建一日期对象   
    

    1.日期格式转为日期标准字符串:2015-03-19

    var formatDate = function (date) {  
        var y = date.getFullYear();  
        var m = date.getMonth() + 1;  
        m = m < 10 ? '0' + m : m;  
        var d = date.getDate();  
        d = d < 10 ? ('0' + d) : d;  
        return y + '-' + m + '-' + d;  
    };  
    

    2.js方法返回值:2015-03-19 12:00:00

    var formatDateTime = function (date) {  
                    var y = date.getFullYear();  
                    var m = date.getMonth() + 1;  
                    m = m < 10 ? ('0' + m) : m;  
                    var d = date.getDate();  
                    d = d < 10 ? ('0' + d) : d;  
                    var h = date.getHours();  
                    h=h < 10 ? ('0' + h) : h;  
                    var minute = date.getMinutes();  
                    minute = minute < 10 ? ('0' + minute) : minute;  
                    var second=date.getSeconds();  
                    second=second < 10 ? ('0' + second) : second;  
                    return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;  
                };  
    

    3.时间戳转为日期格式

    //时间戳转日期格式  
          var formatDateTime3 = function(time, format){  
              var t = new Date(time);  
              var tf = function(i){return (i < 10 ? '0' : '') + i};  
              return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){  
                  switch(a){  
                      case 'yyyy':  
                          return tf(t.getFullYear());  
                          break;  
                      case 'MM':  
                          return tf(t.getMonth() + 1);  
                          break;  
                      case 'mm':  
                          return tf(t.getMinutes());  
                          break;  
                      case 'dd':  
                          return tf(t.getDate());  
                          break;  
                      case 'HH':  
                          return tf(t.getHours());  
                          break;  
                      case 'ss':  
                          return tf(t.getSeconds());  
                          break;  
                  }  
              })  
          };  
    

    4.时间格式字符串转为时间戳(毫秒)

    var time1=2016-01-01 17:22:37’;  
    var date=new Date(time1.replace(/-/g, '/'));  //开始时间  
    var time2=date.getTime();  
    

    如何将2015-03-12 12:00 转换成标准时间()?

    // 调用:parserDate("2015-03-19 12::00:00")
    var parserDate = function (date) {  
        var t = Date.parse(date);  
        if (!isNaN(t)) {  
            return new Date(Date.parse(date.replace(/-/g, "/")));  
        } else {  
            return new Date();  
        }  
    }; 
    

    转自不忘初心:http://blog.csdn.net/tomcat_2014/article/details/50514979

    补充:
    写一个vue plugin 用于格式化日期时间:

    export function prefixZero (num, n) {
        return (Array(n).join(0) + num).slice(-n);
    } 
    
    /**
     * @param {String | Number} date 当前时间
     * @param {String} format 格式化格式
     *
     * usage:
     *	dateFormatter('2011/1/12 12:12:22', 'yyyy-MM-dd HH:mm:ss')
     * 	dateFormatter(1294805542000, 'yyyy-MM-dd HH:mm:ss')
     */
    export function dateFormatter (date, format) {
      const t = new Date(date)
      console.log(t)
      if (t.toString() === 'Invalid Date') { return 'invalid date' }
      return format.replace(/yyyy|MM|M|WW|W|ww|w|dd|d|HH|H|hh|h|mm|m|ss|s|A|a/g, function(a){  
        switch(a){  
          case 'yyyy': // 年 2011
            return prefixZero(t.getFullYear(), 4);
          case 'MM': 	// 月 01
            return prefixZero(t.getMonth() + 1, 2);
          case 'M': 	// 月 1
            return t.getMonth() + 1;
          case 'WW': 	// 周 01
            return prefixZero(t.getDay(), 2);
          case 'W': 	// 周 1
            return t.getDay();
          case 'ww': 	// 周 星期一
            return "星期" + "日一二三四五六".charAt(t.getDay());
          case 'w': 	// 周 周一
            return "周" + "日一二三四五六".charAt(t.getDay());
          case 'dd': 	// 日 02
            return prefixZero(t.getDate(), 2);
          case 'd': 	// 日 2
            return prefixZero(t.getDate(), 2);
          case 'HH':  // 小时 24小时制 03
            return prefixZero(t.getHours(), 2);
          case 'H':  	// 小时 24小时制 3
            return prefixZero(t.getHours(), 2);
          case 'hh':  // 小时 12小时制 03
            return prefixZero(t.getHours() % 12, 2);
          case 'h':  	// 小时 12小时制 3
            return prefixZero(t.getHours() % 12, 2);
          case 'mm':  // 分钟 04
            return prefixZero(t.getMinutes(), 2);
          case 'm':  	// 分钟 4
            return t.getMinutes();
          case 'ss':  // 秒 05
            return prefixZero(t.getSeconds(), 2);
          case 's':  	// 秒 5
            return t.getSeconds();
          case 'A':  
            return t.getHours() < 12 ? 'AM' : 'PM';
          case 'a':  
            return t.getHours() < 12 ? 'am' : 'pm'; 
        }  
      })  
    }
    
    const dateFormat = {
      install: function (vue) {
        vue.prototype.$dateFormatter = dateFormatter
        vue.filter('date', dateFormatter)
      }
    }
    export default dateFormat
    
    展开全文
  • 日期和时间格式日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行...

    日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串
    白话文的讲:这些A——Z,a——z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。

    日期和时间模式(注意大小写,代表的含义是不同的)

    yyyy:年
    MM:月
    dd:日
    hh:1~12小时制(1-12)
    HH:24小时制(0-23)
    mm:分
    ss:秒
    S:毫秒
    E:星期几
    D:一年中的第几天
    F:一月中的第几个星期(会把这个月总共过的天数除以7)
    w:一年中的第几个星期
    W:一月中的第几星期(会根据实际情况来算)
    a:上下午标识
    k:和HH差不多,表示一天24小时制(1-24)。
    K:和hh差不多,表示一天12小时制(0-11)。
    z:表示时区  

    (2017-12-28日,更新)

    因为看到了Java 8 里面对日期的格式化操作的API,回头又看了看这个以前的日期格式化。发现,文中的实例不是很全面。不符合湿胸的性格,特地来完善一下。

        private static void formatDataTest() {
            /*
             * 日期转期望格式的字符串
             */
            //HH 和 hh 的差别:前者是24小时制,后者是12小时制。
            StringBuilder sb = new StringBuilder();
            sb.append("yyyy年MM月dd日 HH:mm:ss")
                    .append(" 上下午标志 a")
                    .append(" E")
                    .append(" 一年中的第D天")
                    .append(" 一月中的第F个星期")
                    .append(" 一年中的第w个星期")
                    .append(" 一月中的第W个星期")
                    .append(" Z")
                    .append(" z");
            SimpleDateFormat sdf = new SimpleDateFormat(sb.toString());
            String dateString = sdf.format(new Date());
            System.out.println(dateString);
            /*
             * 字符串转日期
             */
            Date date;
            try {
                date = sdf.parse(dateString);
                System.out.println(date);
            } catch (ParseException e) {
                System.out.println(e.getMessage());
            }
        }

    运行结果:
    2017年12月28日 18:21:731 上下午标志 下午 星期四 一年中的第362天 一月中的第4个星期 一年中的第52个星期 一月中的第5个星期 +0800 CST
    Thu Dec 28 18:21:00 CST 2017

     

    这里多说一句,一个月中的第几个星期,  F   这个出来的结果,不靠谱,具体我就在这多做测试啦,我是测试过,才这么说的,还是后面的那个  W  靠谱。

    (更新完成)

    具体简单常见的实例:

    package com.lxk.DateFormat;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * Created by lxk on 2016/11/4
     */
    public class Format {
        public static void main(String[] args) {
            Date ss = new Date();
            System.out.println("一般日期输出:" + ss);
            System.out.println("时间戳:" + ss.getTime());
            //Date aw = Calendar.getInstance().getTime();//获得时间的另一种方式,测试效果一样
            SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String time = format0.format(ss.getTime());//这个就是把时间戳经过处理得到期望格式的时间
            System.out.println("格式化结果0:" + time);
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
            time = format1.format(ss.getTime());
            System.out.println("格式化结果1:" + time);
        }
    }
    

    测试结果图:

    需要什么格式,自己拼好字符串,就可以格式化日期啦。授人以渔呀有木有。

    喷子们要是觉得简单呢,就省省唾沫星子吧。我就记个笔记用。

    上面的是:日期转自己想要的字符串格式,下面是字符串转日期类型

        private static void testStringToDate() {
            String s = "2017-05-25";
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date date = null;
            try {
                date = format.parse(s);
            } catch (ParseException e) {
                System.out.println(e.getMessage());
            }
            System.out.println(date);
        }

    下面是运行的debug截图。

    上面的那个  日期和时间模式  是按我们常用的年月日时分秒来放的,下面传个别人的专业的图,供参考。

    定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

    我写完文章,给自己点个赞,不过分吧,
    不过分,那我可就点啦啊。
    我先点为敬,你们随意。大家随意。不要客气。。。

    展开全文
  • SpringBoot设置后台向前台传递Date日期格式 在springboot应用中,@RestController注解的json默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00类型的显示。 在实际显示中,我们需要对其转换成我们需要...

    1. SpringBoot设置后台向前台传递Date日期格式

    在springboot应用中,@RestController注解的json默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00类型的显示。
    在这里插入图片描述
    在实际显示中,我们需要对其转换成我们需要的显示格式。

    1.1 方式1:配置文件修改

    配置文件配置application.yml

    spring:
      # 配置日期格式化
      jackson:
        date-format: yyyy-MM-dd HH:mm:ss  #时间戳统一转换为指定格式
        time-zone: GMT+8  # 时区修改为东8区
    

    application.properties配置方式

    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss	#时间戳统一转换为指定格式
    spring.jackson.time-zone=GMT+8	# 时区修改为东8区
    

    【注意】这里需要修改时区time-zone:数据库默认时区是格林尼治的时间,如果不设置,会比实际时间少8个小时(北京时间)。

    1.2 方式2:在javabean实体类上加注解

    I. @JsonFormat注解

    @JsonFormat注解用于属性或方法上,将Date类型转换为我们需要的类型显示。

    	//在pattern上设置自己需要的格式
    	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    	private Date createTime;
    

    II. @DateTimeFormat注解

    在需要进行日期格式转换的Date属性上添加注解@DateTimeFormat(pattern = "需要转换的格式")

      //注解将yyyy-MM-dd的形式转换为Date数据
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private Date birthday;
    

    III. @Temporal注解

    通过@Temporal注解,实现日期格式转换,它自带属性参数,比如:

    @Temporal注解参数 作用
    TemporalType.DATE @Temporal(TemporalType.DATE),会得到yyyy-MM-dd格式的日期形式。
    TemporalType.TIME @Temporal(TemporalType.TIME),会得到HH:MM:SS格式的时间形式。
    TemporalType.TIMESTAMP @Temporal(TemporalType.TIMESTAMP),会得到yyyy-MM-dd hh:MM:ss格式的日期时间形式。
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;
    


    2. SpringBoot配置全局日期格式转换器

    配置从页面接收的String和json格式的日期转换为Date类型。

    2.1 配置String类型表单传参转Date的转换器

    import org.springframework.core.convert.converter.Converter;
    import org.springframework.stereotype.Component;
    import org.springframework.util.StringUtils;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    
    //Converter<S,T>  S: 代表的是源,将要转换的数据类型  T:目标类型,将会转成什么数据类型
    @Component
    public class GlobalFormDateConvert implements Converter<String, Date> {
    
        //静态初始化定义日期字符串参数列表(需要转换的)
        private static final List<String> paramList = new ArrayList<>();
    
        //静态初始化可能初夏你的日期格式
        private static final String param1 = "yyyy-MM";
        private static final String param2 = "yyyy-MM-dd";
        private static final String param3 = "yyyy-MM-dd HH:mm";
        private static final String param4 = "yyyy-MM-dd HH:mm:ss";
    
        //静态代码块,将日期参数加入到列表中
        static {
            paramList.add(param1);
            paramList.add(param2);
            paramList.add(param3);
            paramList.add(param4);
        }
    
        //自定义函数,将字符串转Date  参1:传入的日期字符串  参2:格式参数
        public Date parseDate(String source, String format) {
            System.out.println("parseDate转换日期");
            Date date = null;
            try {
                //日期格式转换器
                DateFormat dateFormat = new SimpleDateFormat(format);
                date = dateFormat.parse(source);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return date;
        }
    
    
        //convert转换方法 ,s是将会传递过来的日期的字符串
        @Override
        public Date convert(String source) {
    
            System.out.println("convert日期格式转换器");
            if(StringUtils.isEmpty(source)){
                return null;
            }
            source = source.trim();   //去除首尾空格
            DateFormat dateFormat = new SimpleDateFormat(param1);
    
            //正则表达式判断是哪一种格式参数
            if (source.matches("^\\d{4}-\\d{1,2}$")) {
                return parseDate(source, paramList.get(0));
            } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
                return parseDate(source, paramList.get(1));
            } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
                return parseDate(source, paramList.get(2));
            } else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
                return parseDate(source, paramList.get(3));
            } else {
                throw new IllegalArgumentException("还未定义该种字符串转Date的日期转换格式 --> 【日期格式】:" + source);
            }
        }
    }
    

    2.2 配置Json数据转Date的全局日期转换器

    import java.text.FieldPosition;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import com.fasterxml.jackson.databind.util.StdDateFormat;
    import org.springframework.util.StringUtils;
    
    public class GlobalJsonDateConvert extends StdDateFormat {
    
        //静态初始化final,共享
        public static final GlobalJsonDateConvert instance = new GlobalJsonDateConvert();
    
        //覆盖parse(String)这个方法即可实现
        @Override
        public Date parse(String dateStr, ParsePosition pos) {
            return getDate(dateStr, pos);
        }
    
        @Override
        public Date parse(String dateStr) {
            ParsePosition pos = new ParsePosition(0);
            return getDate(dateStr, pos);
        }
    
        private Date getDate(String dateStr, ParsePosition pos) {
            System.out.println("json格式日期转换");
            SimpleDateFormat sdf = null;
            if (StringUtils.isEmpty(dateStr)) {
                return null;
            } else if (dateStr.matches("^\\d{4}-\\d{1,2}$")) {
                sdf = new SimpleDateFormat("yyyy-MM");
                return sdf.parse(dateStr, pos);
            } else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
                sdf = new SimpleDateFormat("yyyy-MM-dd");
                return sdf.parse(dateStr, pos);
            } else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
                sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                return sdf.parse(dateStr, pos);
            } else if (dateStr.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
                sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                return sdf.parse(dateStr, pos);
            } else if (dateStr.length() == 23) {
                sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                return sdf.parse(dateStr, pos);
            }
            return super.parse(dateStr, pos);
        }
    
        @Override
        public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sdf.format(date, toAppendTo, fieldPosition);
        }
    
        @Override
        public GlobalJsonDateConvert clone() {
            return new GlobalJsonDateConvert();
        }
    }
    

    2.3 配置bean交给Spring管理

    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.xgf.online_mall.convert.GlobalFormDateConvert;
    import com.xgf.online_mall.convert.GlobalJsonDateConvert;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.support.ConversionServiceFactoryBean;
    import org.springframework.core.convert.ConversionService;
    import org.springframework.core.convert.converter.Converter;
    import org.springframework.http.MediaType;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.HashSet;
    import java.util.Set;
    
    
    @Configuration
    public class WebConfig {
    
        //JSON格式 全局日期转换器配置
        @Bean
        public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
            MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
            //设置日期格式
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setDateFormat(GlobalJsonDateConvert.instance);
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
            //设置中文编码格式
            List<MediaType> list = new ArrayList<MediaType>();
            list.add(MediaType.APPLICATION_JSON_UTF8);
            mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
            return mappingJackson2HttpMessageConverter;
        }
    
        //表单格式 全局日期转换器
    
        @Bean
        @Autowired
        public ConversionService getConversionService(GlobalFormDateConvert globalDateConvert){
            ConversionServiceFactoryBean factoryBean = new ConversionServiceFactoryBean();
            Set<Converter> converters = new HashSet<>();
            converters.add(globalDateConvert);
            factoryBean.setConverters(converters);
            return factoryBean.getObject();
        }
    }
    
    

    参考;博客园【NcQiao】大佬的文章:https://www.cnblogs.com/joelan0927/p/11715062.html

    展开全文
  • java日期中文格式转日期格式

    千次阅读 2019-09-29 11:47:56
    java日期中文格式转日期格式 如:2019年10月20日转成日期格式 字符串转日期: public static Date StrToDate(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy年M月dd日"); Date date = ...
  • oracle 英文日期格式转换中文日期格式02-Mar-2010 这个格式是美国格式,可以使用如下语句转换成中文格式 2010/3/2:SELECT TO_DATE('02 Mar 2010 06:00:00', 'DD MONTH YYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE = ...
  • 项目开发过程中需要实现日期格式的字符串与日期进行互转,并进行日期的加减操作。 Demo如下: package weiming.lmapp.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java....
  • 日期格式化 给日期加上指定时长 得到指定时间节点的Date 1、时间戳转Date 注:以下的方法中很多常量和方法我都没有提取出来,正式项目中还是建议大家封装在时间处理类中,规范化操作 public...
  • JAVA 日期格式

    千次阅读 2019-07-07 20:39:47
    最近项目中需要用到SimpleDateFormat 格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。 日期格式化学习 预定义格式日期...
  • SQL Server日期格式

    万次阅读 2018-11-13 16:19:39
    SQL Server日期格式化 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select ...
  • Java日期格式

    万次阅读 2019-07-09 12:08:19
    Java日期格式化 public class DateUtils { /** 时间格式(yyyy-MM-dd) */ public final static StringDATE_PATTERN ="yyyy-MM-dd"; /** 时间格式(yyyy-MM-dd HH:mm:ss) */ public final static StringDATE_TIME...
  • SpringMVC日期格式

    千次阅读 2018-06-05 00:38:35
    一、关于SpringMVC日期的格式化大概可分为四点1.@ResponseBody方式返回json的日期格式化2.ajax方式返回json的日期格式化3.数据保存时String转Date4.页面展示时,Date转固定格式的String二、配置实现日期格式化1.@...
  • //long转换为日期格式函数 Date.prototype.format = function (format){ var o = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), ...
  • 日期格式互转:(整型)时间戳与日期格式转换
  • vue日期格式处理

    千次阅读 2018-12-16 15:05:06
    项目开发中,由于后台返回的数据是时间戳,所以前台需要有一哥统一处理日期。 举例:后台返回时间戳:...Transfer将时间戳转换成Date类型,Format第一个参数为日期格式,第二个参数为可选,当日期为nul...
  • pandas日期列读取成日期格式

    万次阅读 2019-02-18 15:28:03
    read_cav的时候加一个参数:parse_dates = ['date'],就会把date这一列自动转化为日期格式,例如: import pandas as pd data = pd.read_csv('test.csv',parse_dates = ['date']) 如果原来读取进来日期格式...
  • Java日期格式与文本格式的互相转化

    千次阅读 2020-02-29 23:43:15
    一、将日期【格式化】地转化为String...2、创建格式器对象DateFormat 创建日期格式化对象 DateFormat dateFormat1=DateFormat.getDateInstance(DateFormat.LONG);//可传入FULL LONG MEDIUM SHORT 四种参数 各有不...
  • Java SimpleDateFormat进行日期格式

    万次阅读 多人点赞 2017-10-27 16:58:35
    一,为啥要用SimpleDateFormat众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:package org.maoge.common; import java.util.Date; public class SimpleDateFormatDemo { public ...
  • 1、首先在配置文件中添加以下配置信息,确定日期格式,供下面配置类中进行读取 Spring: jackson: date-format: yyyy-MM-dd HH:mm 2、新建配置类,在程序运行初始化时进行加载,将日期格式进行转化 import ...
  • Oracle获取当前日期及日期格式

    万次阅读 2018-05-16 15:16:00
    Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS) 或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS) 格式化数字: TO_NUMBER 注: ...
  • 日期格式正则

    千次阅读 2018-07-03 20:13:32
    * 判断日期格式(2018-06-09 23:22:22) * @param dateStr * @return */ private boolean isDate(String dateStr){ Pattern p = Pattern.compile(&amp;quot;^(\\d{4})(\\-)(\\d{2})(\\-)(\\...
  • Elasticsearch日期格式

    千次阅读 2019-07-09 11:14:25
    参照以下文章进行日期格式化即可,传送门: https://blog.csdn.net/smilepasta035/article/details/79550400

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,848
精华内容 34,739
关键字:

日期格式