3.DateTimeFormatter格式化
JDK 8 之后,我们可以使用 DateTimeFormatter
来替代 SimpleDateFormat
,因为 SimpleDateFormat
是非线程安全的,而 DateTimeFormatter
是线程安全的,所以如果是 JDK 8 以上的项目,尽量使用 DateTimeFormatter
来进行时间格式化。
DateTimeFormatter
格式化的代码和 SimpleDateFormat
类似,具体实现如下:
@RequestMapping("/list") public List<UserInfo> getList() { // 定义时间格式化对象 DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("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; }
执行结果如下所示:
DateTimeFormatter
和 SimpleDateFormat
在使用上的区别是 DateTimeFormatter
是用来格式化 JDK 8 提供的时间类型的,如 LocalDateTime
,而 SimpleDateFormat
是用来格式化 Date
类型的,所以我们需要对 UserInfoer 实体类做如下的修改:
import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.time.LocalDateTime; @Data publicclass UserInfo { privateint id; private String username; @JsonIgnore private LocalDateTime createtime; private String ctime; @JsonIgnore private LocalDateTime updatetime; private String utime; }
我们可以使用 LocalDateTime
来接收 MySQL 中的 datetime
类型。