时间格式转换
1.在后台进行格式处理
今天在做管理员显示用户信息的时候发现,数据库里面保存的Date类取出后的格式是这样的:Mon Mar 09 11:36:53 CST 2020。我们都知道平时显示的时间格式都是2020-03-09 11:36:53, 而这个显示的是Date类默认格式。原模原样的返回给用户看肯定是不行的。话不多说,上代码:
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate=sdf.format(date);
讲一下原理:我这里借助了一个java实例SimpleDateFormat实现格式化时间 yyyy代表的是年份(year),MM代表的月份(month),dd代表的是日期(day),HH代表的小时(hour),mm代表的分钟(minute),ss代表的秒(second)。调用该类的format()方法就能将Date默认类型转为String类型的时间表示 就能以字符串的形式传给前台显示啦
2.在前端进行格式处理
在第一种方法之前我还尝试了一次在前台对传过来的Date类型进行转换。查阅了一段时间其他大佬们的做法。普遍思路都是将获取过来的时间类通过js将其转换格式。js代码如下:
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;
};
其中date为传过来的Date类数据。
3.通过配置aplication.yml来控制输出的时间格式(推荐)
因为我数据和前台的交互是用的jackson,将所以的数据都以键值对的形式存储在jsonObject里返回给控制器,所以我查阅了下开发文档,找到了这样控制时间格式的方法(超简单!)
spring:
jakcson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT-8
如果要使用jackson需要在pom.xml中导入依赖,我用的依赖如下(版本因人而异):
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
希望每天都能有所进步,加油!