时间字段处理小记
# 时间字段处理小记
# 实体类相关注解
常见注解如下:
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// 和
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
1
2
3
2
3
具体说明:
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
注解通常在接收前端参数时使用,用于告诉框架如何将传递的日期时间字符串转换为Date
类型的对象。例如,当你在控制器方法中接收前端传递的日期时间参数时,可以使用该注解来指定日期时间字符串的格式,以确保正确地解析为
Date
对象。@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
注解通常在将对象序列化为 JSON 格式响应给前端时使用,用于指定日期时间字段在序列化为 JSON 时的格式。通过该注解,你可以确保响应中的日期时间字段以指定的格式进行格式化,以便前端能够正确地解析和显示。
建议:
个人感觉可以都用,有时候需要打印请求体参数或者需要序列化参数的时候,没有 @JsonFormat
会报错。
总结:
- 一个是在处理接收前端参数的时候用到(
@DateTimeFormat
) - 一个是序列化响应给前端的时候用到(
@JsonFormat
)
注意:
GET
请求中,请求体的时间字段不能用@JsonFormat
,需要使用@DateTimeFormat
- 因为
GET
请求的日期是拼接在 URL 里的,需要用 spring 自带的@DateTimeFormat(pattern="yyyy-MM-dd")
,后端才能接收到参数。 @JsonFormat
有默认时区,用String
接收参数或者响应数据时,不用设置时区;用Date
时需要设置时区。
# Date 字段格式化处理
方法如下:
# SimpleDateFormat
1、在需要时进行转换
// ...
// item.getAlarmTime() 返回的是一个 Date 对象
Date alarmTime = item.getAlarmTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(alarmTime);
// ...
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# get 方法重写
2、在实体类中重写 get 方法
public String getAlarmTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(alarmTime);
}
1
2
3
4
2
3
4
# hutool 工具类
3、DateUtil.format()
方法
DateUtil.format(record.getDate(), "yyyy年MM月dd日")
1
上次更新: 2024/9/25 11:16:13