模板我使用的Thymelef
前端代码
<td><span th:text="${#dates.format(student.birthday,'yyyy-MM-dd')}"></span></td>
这里使用#dates对象的format方法
#${#dates.format(student.birthday,'yyyy-MM-dd')}
//也可以精确到秒,大写的M是月份,小写的mm是分钟
#${#dates.format(student.birthday,'yyyy-MM-dd HH-mm-ss')}
当然你后端也要得弄:
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date sBirthday;
参数说明:
- pattern:日期的格式。
- timezone:时区,这里我们使用的是"GMT+8"
说明:
- Java里面yyyy表示年,MM表示月, mm表示分钟, HH表示 24小时制, hh表示12小时制。
- GMT 就是格林威治标准时间的英文缩写(Greenwich Mean Time 格林尼治标准时间),是世界标准时间,“GMT+8"是格林威治时间+8小时,中国所在时区就是"GMT+8”。
- 注解@JsonFormat主要是后台到前台的时间格式的转换
- 注解@DataFormAT主要是前后到后台的时间格式的转换
@JsonFormat注解解析:
@JsonFormat用于于配置如何序列化属性值的详细信息的通用注释。与大多数其他Jackson注释不同,annotation没有特定的通用解释:相反,效果取决于被注释的属性的数据类型(或者更具体地说,取决于使用的反序列化器和序列化器)。 常见的用法包括在备选表示之间进行选择——例如,是否使用java.util。日期将序列化为数字(Java时间戳)或字符串(比如ISO-8601兼容的时间值)——以及使用pattern属性配置准确的细节。 在Jackson 2.6中,已知的特殊处理包括: java.util。日期:Shape可以是JsonFormat.Shape。字符串或JsonFormat.Shape.NUMBER;模式可以包含java.text。SimpleDateFormat-compatible模式定义。 也可以用于类(类型),用于修改的默认行为,可能被每个属性注释覆盖 枚举:JsonFormat.Shape形状。字符串和JsonFormat.Shape。数字可以用来在数字(索引)和文本(名称或toString())之间进行更改;但是也可以使用JsonFormat.Shape。对象将枚举序列化(但不反序列化)为JSON对象(就像它们是pojo一样)。
@DateTimeFormat注解解析:
声明字段或方法参数应格式化为日期或时间。 支持格式化的风格模式,ISO日期时间模式,或自定义格式模式字符串。可以应用到java.util。日期、java.util。日历,. lang。长、Joda-Time值类型;从Spring 4和JDK 8到JSR-310 java。时间类型。 对于基于样式的格式化,将样式属性设置为样式模式代码。代码的第一个字符是日期样式,第二个字符是时间样式。指定一个字符“S”表示短样式,“M”表示中样式,“L”表示长样式,“F”表示全样式。通过指定样式字符“-”可以省略日期或时间。 对于基于iso的格式,将iso属性设置为所需的DateTimeFormat。ISO格式,如DateTimeFormat.ISO.DATE。对于自定义格式,将模式属性设置为日期时间模式,如yyyy/MM/dd hh: MM:ss a。 每个属性都是互斥的,因此每个注释实例只设置一个属性(最适合您的格式需求的一个)。当模式属性被指定时,它优先于style和ISO属性。当指定iso属性时,它优先于style属性。如果没有指定注释属性,则应用的默认格式是基于样式的,样式代码为“SS”(短日期、短时间)