后台实体⽇期类型是string,前端传递时间之类型转换
当实体对应的⽇期类型是string时,如果不做处理,前端传递到后台的时间将会被转换成类似“ Aug 21 2018 00:00:00 GMT+0800 (中国标准时间)”格式的字符串
这种格式的字符串使⽤SimpleDateFormat类并不能直接转换,类型不对,当然可以使⽤字符串截取的⽅式去转换,这种⽅式并不是这篇⽂章介绍的重点
字符串截取后转换的⽅式:
public final static String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";
public final static String[] REPLACE_STRING = new String[]{"GMT+0800", "GMT+08:00"};
public final static String SPLIT_STRING = "(中国标准时间)";
public static Date str2Date(String dateString) {
try {
dateString = dateString.split(Pattern.quote(SPLIT_STRING))[0].replace(REPLACE_STRING[0], REPL
ACE_STRING[1]);
SimpleDateFormat sf1 = new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z", Locale.US);
Date date = sf1.parse(dateString);string转date的方法
return date;
} catch (Exception e) {
throw new RuntimeException("时间转化格式错误" + "[dateString=" + dateString + "]" + "[FORMAT_STRING=" + FORMAT_STRING + "]");
}
}
public static void main(String[] args) {
str2Date("Tue Aug 21 2018 00:00:00 GMT+0800 (中国标准时间) 00:00:00");
}
如果不通过这种⽅式的话,可以通过选择⽇期时将时间处理成毫秒值,然后后台在进⾏转换即可
前端使⽤vue+element,所以,我是通过element现成的属性转,其他框架可以使⽤js实现(实现⽅式⾃⾏百度)
<el-date-picker v-model="value3" type="date" placeholder="选择⽇期" format="yyyy 年 MM ⽉ dd ⽇" value-
format="timestamp"> </el-date-picker>
之后再后台接收时
SimpleDateFormat trante = new SimpleDateFormat("yyyy-MM-dd");
//转换⽇期格式
Date date = new Date();
date.setTime(“毫秒值”);
String format = trante.format(date);
这种⽅式还是⽐较简单的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。