Java&JS时间格式转化

一、Java格式转化

1.1、接收前端传值转化

Java时间格式转化
为此记录一下:@DateTimeFormat和@JsonFormat区别

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

如果直接使用 @JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”)就会出现2018-08-01 08:00:00的情况
会相差8个小时,因为我们是东八区(北京时间)。所以我们在格式化的时候要指定时区(timezone )

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

这个注解 只是知道是时间转化 但是具体含义暂时不清楚 只了解到
前台传过来的时间是2018-07-12 17:44:08,但是通过这个注解
你存到数据库的时间就是2018-07-12 00:00:00.

1.2、String转化LocalDate

方法一 字符串形式为正常格式的yyyy-MM-dd HH:mm:ss
字符串形式为正常格式的yyyy-MM-dd HH:mm:ss时,可以直接转

LocalDateTime localDate=LocalDateTime.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

方法二 针对CST时间格式的字符串进行转换
针对CST时间格式的字符串进行转换(Mon Oct 24 10:18:54 CST 2022)

public static LocalDateTime toLocalDateTime(String dateStr) {
   try {
       SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
       SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String str = sdf1.format(sdf.parse(dateStr));
       LocalDateTime localDate=LocalDateTime.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
       System.out.println(localDate);
       return localDate;
   } catch (ParseException e) {
       e.printStackTrace();
       throw new RuntimeException();
   }
    }

方法三 不知道是什么时间格式的字符串
对于不知道是什么时间格式的字符串进行LocalDateTime的时间转换,这里介绍使用hutool包,将字符串先转换成DateTime,再转LocalDateTime。

public static LocalDateTime parseLocalDateTime(String dateStr) {
        DateTime parse = DateUtil.parse(dateStr);
        Instant instant = parse.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
        System.out.println(localDateTime);
        return localDateTime;
    }

1.3、LocalDate与Date相互转换

LocalDate转Date

 LocalDate date = LocalDate.of(2006,07,26);
 ZoneId zone = ZoneId.systemDefault();
 Instant instant = date.atStartOfDay().atZone(zone).toInstant();
 java.util.Date da = Date.from(instant);

Date转LocalDate

  Instant instant =new Date().toInstant();
  ZoneId zone = ZoneId.systemDefault();
  LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
  LocalDate localDate= localDateTime.toLocalDate();

LocalDate生成当前时间

LocalDate.now();

二、Javascript格式转化

2.1、JS时间格式转化

第一种方法

function formateTimeStamp(time){
   var date = new Date();
   date.setTime(time);
   var year = date.getFullYear();
   var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
   var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
   var hour = date.getHours()< 10 ? "0" + date.getHours() : date.getHours();
   var minute = date.getMinutes()< 10 ? "0" + date.getMinutes() : date.getMinutes();
   var second = date.getSeconds()< 10 ? "0" + date.getSeconds() : date.getSeconds();
   return year + "-" + month + "-" + day+" "+hour+":"+minute+":"+second;
}

第二种方法

function dateformat(data){
var dateee = new Date(data).toJSON();
  return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '') 
}

第三种方法

Vue.filter('dataFormat', function (inputstr, showsplit, showweek) {
 inputstr = inputstr + ""; //末尾加一个空格
  var date = "";
  var month = new Array();
  var week = new Array();

  month["Jan"] = 1; month["Feb"] = 2; month["Mar"] = 3; month["Apr"] = 4; month["May"] = 5; month["Jun"] = 6;
  month["Jul"] = 7; month["Aug"] = 8; month["Sep"] = 9; month["Oct"] = 10; month["Nov"] = 11; month["Dec"] = 12;
  week["Mon"] = "一"; week["Tue"] = "二"; week["Wed"] = "三"; week["Thu"] = "四"; week["Fri"] = "五"; week["Sat"] = "六"; week["Sun"] = "日";

  var str = inputstr.split(" ");

  date = str[5];
  date += showsplit + month[str[1]] + showsplit + str[2] + " " + str[3];
  if(showweek){
  date += " " + " 星期" + week[str[0]];
  }

  return date;
})

引用方式

<template slot-scope="scope">
	<span>{{scope.row.createTime, "-", false | dataFormat}}</span>
 </template>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故里明月

感谢大大的打赏,俺会继续努力的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值