java日期时间格式转换(踩坑之路)

后端在application中配置如下:

# 时间转换
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

用于时间转换,后面传递给前台的时候,前台接收到的数据格式如下:

后来查看个各种资料,得到如下结论:

date:表示日期:1~31

day: 星期 图中5表示星期5

hours:小时 0~23

minutes:分钟 0~59

month:月份 从0开始 所以月份都要+1

nanos: 毫微秒(查看了英文字典)所以此处直接0吧,毕竟mysql精确不到毫微秒吧

seconds:秒 0~59

time:13位的数据字符串(可以直接表示整个时间) 从1970年1月1日0时整到现在的毫秒数。

timezoneOffset:格林威治时间和本地时间之间的时差,以分钟为单位。所以说北京时间和格林威治时间差了8小时。

拓展:

格林威治标准时间(GMT) 

地区:英国 皇家格林尼治天文台

时区:UTC/GMT 0 (零时区)

year:年份 如果如图所示的话,需要手动加上1900

所以,在做时间转换得时候,直接对time动手:

    function formatterTime(time, fmt) {
    
          if(!time){
    
                return '';
    
          }
    
          if(typeof(time) == "object" || typeof(time) == "OBJECT") {
    
          var z = {
    
                      M: time.getMonth() + 1,
    
                      d: time.getDate(),
    
                      h: time.getHours(),
    
                      m: time.getMinutes(),
    
                      s: time.getSeconds()
    
                };
    
          fmt = fmt.replace(/(M+|d+|h+|m+|s+)/g, function(v) {
    
                      return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2);
    
                });
    
          return fmt.replace(/(y+)/g, function(v) {
    
                      return time.getFullYear().toString().slice(-v.length);
    
                });
    
          }else if(typeof(time) == "number"){
    
                var TIME = new Date( time) ;
    
                var z = {
    
                            M: TIME.getMonth() + 1,
    
                            d: TIME.getDate(),
    
                            h: TIME.getHours(),
    
                            m: TIME.getMinutes(),
    
                            s: TIME.getSeconds()
    
                      };
    
                fmt = fmt.replace(/(M+|d+|h+|m+|s+)/g, function(v) {
    
                            return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-2);
    
                      });
    
                return fmt.replace(/(y+)/g, function(v) {
    
                            return TIME.getFullYear().toString().slice(-v.length);
    
                      });
    
          }
    
          else return time;
    
    }

看清楚,是两个参数哦。一个是13位数字,一位是格式,例如:"yyyy-MM-dd hh:mm:ss"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值