一、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>