一、前后端交互日期时间格式
1.1 常见格式:
1、日期字符串格式:
- 格式示例:“YYYY-MM-DD”(如"2022-02-22")
- 其他变种包括:“MM/DD/YYYY”(如"02/22/2022")或"DD/MM/YYYY"(如"22/02/2022")
- 说明:最常见的日期表示方法
2、24小时制时间:
- 格式示例:“HH:mm:ss”(如"12:22:22")
- 说明:以小时、分钟和秒为单位,使用24小时制来表示时间。这种格式常用于需要精确到秒的时间表示。
3、日期+时间:
- 格式示例:“YYYY-MM-DD HH:mm:ss”(如"2022-02-22 12:22:22")
- 说明:结合以上两种
1.2 其他格式:
1、ISO 8601 格式:
-
格式示例:“YYYY-MM-DDTHH:mm:ss.sssZ”
-
说明:国际标准的日期和时间表示方法,其中"T"是日期和时间的分隔符,"Z"表示时区。例如,"2023-09-29T12:34:56Z"代表2023年9月29日12时34分56秒的时间点。
2、时间戳:
-
格式示例:1631107200000(这是一个整数,代表从1970年1月1日00:00:00 UTC起经过的毫秒数)
-
说明:时间戳是指从某个固定的起点(Unix时间的起点)以来经过的时间,通常以毫秒数表示。这种格式便于计算机处理和计算时间差。
3、AM/PM 时间:
- 格式示例:“hh:mm:ss AM” 或 “hh:mm:ss PM”(如"12:34:56 PM")
- 说明:使用12小时制,并在时间后面加上"AM"或"PM"来表示上午或下午
在前端开发中,选择哪种格式取决于具体的应用需求和用户的偏好。例如,在需要跨时区通信的Web应用中,ISO 8601格式因其通用性和时区明确性而被广泛使用。而在面向用户的界面上,则可能会使用更为人性化的日期字符串或AM/PM时间格式。
二、SpringBoot 时间字段常用注解
处理日期和时间字段时,需要确保它们在数据库、JSON序列化和前端显示时以统一的格式出现。在SpringBoot项目中可以通过注解来实现
数据类型通常使用 LocalDateTime、Date
/** 创建时间 */
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone=”GMT+8”)
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
以下是以提供的代码片段为基础,关于常用注解的来源和说明:
-
@TableField(fill = FieldFill.INSERT)
来源:MyBatis-Plus框架
作用:指定数据库表字段填充策略
参数:
fill = FieldFill.INSERT
表示该字段在插入操作时会自动填充值 -
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
来源:Jackson库
作用:指定Java对象在序列化为JSON字符串时,日期字段的格式。
参数:
pattern
:指定序列化格式timezone
:指定时区特点:前后端数据交互双向的日期时间格式化
-
@DateTimeFormat(“yyyy-MM-dd HH:mm:ss”)
来源:spring框架
作用:将字符串格式化成日期
参数:默认为序列化格式
特点:只能格式化前端传入的日期时间数据字符串