时间对象管理相关
在SpringBoot项目中,这段时间感觉对于时间的处理是个比较繁琐的问题,现将一些常用的时间处理记录下。
一般来说,在MySQL数据库中时间字段选择DateTime,java中实体类时间字段使用Date类型,为了转换方便,使用JSONField以及JsonFormat注解,指定序列化反序列化时日期格式。
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date passTime;
## ISO8601时间格式
2024-03-19T15:26:00.000+08:00
ISO 8601格式在全球范围内被广泛接受和使用,确保了日期和时间的一致性。其简洁明了的数字表示法易于阅读和理解,同时可以直接进行字符串比较,方便排序和搜索操作。此外,ISO 8601格式可以轻松地与不同的编程语言和数据库系统进行集成和交互。
ISO8601格式转换为字符串
public static String isoToTimeStr(String isoDateTime) {
Date date = null;
DateTimeFormatter inputFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
LocalDateTime localDateTime = LocalDateTime.parse(isoDateTime,inputFormatter);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
String dateTimeStr = localDateTime.format(outputFormatter);
return dateTimeStr;
}
yyyy-MM-DD HH:mm:ss.SSS 格式字符串转换为Date对象
String timeStr = "2025-02-05 18:02:42.152
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = sdf.parse(timeStr);