1.前端时间格式化
如果后端在公司中拥有绝对的话语权,或者是后端比较强势的情况下,我们可以将时间格式化的这个“锅”强行甩给前端来处理。
为了让这个“锅”甩的更平顺一些(磊哥不做厨师都可惜了),咱们可以给前端工程师提供切实可行的时间格式化方法,实现代码如下。
JS 版时间格式化
function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString() // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; for (let k in opt) { ret = newRegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) }; }; return fmt; }
方法调用:
let date = newDate(); dateFormat("YYYY-mm-dd HH:MM:SS", date); >>> 2021-07-2521:45:12
2.SimpleDateFormat格式化
大多数情况下,我们还是需要自力更生,各扫门前雪的,这个时候我们后端程序员就需要发挥自己的特长了,我们提供的第 1 个时间格式化的方法是使用 SimpleDateFormat
来进行时间格式化,它也是 JDK 8 之前重要的时间格式化方法,它的核心实现代码如下:
// 定义时间格式化对象和定义格式化样式 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 格式化时间对象 String date = dateFormat.format(new Date())
接下来我们使用 SimpleDateFormat
来实现一下本项目中的时间格式化,它的实现代码如下:
@RequestMapping("/list") public List<UserInfo> getList() { // 定义时间格式化对象 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<UserInfo> list = userMapper.getList(); // 循环执行时间格式化 list.forEach(item -> { // 使用预留字段 ctime 接收 createtime 格式化的时间(Date->String) item.setCtime(dateFormat.format(item.getCreatetime())); item.setUtime(dateFormat.format(item.getUpdatetime())); }); return list; }