当前位置: 首页 > 知识库问答 >
问题:

Spring boot thymeleaf格式日期给出“无法从null检索小时”

鲍飞星
2023-03-14

我有一个Spring启动应用程序,其中我试图以格式化的方式显示出生日期。如果我不使用百里香日期格式选项,我能够显示日期,但如果使用格式选项,它会给我“无法在空上应用格式”

 <td th:text="*{dateOfBirth}">06/23/2013</td>
 output: 1990-01-21 00:03:00.0

 <td th:text="${#dates.format(dateOfBirth,'dd-mm-yyyy')}">06/23/2013</td>
 output ::Cannot apply format on null

我的pogo类中的出生日期字段声明如下。

@JsonDeserialize(using = CustomeDateDeserializer.class)
@DateTimeFormat(pattern="dd-mm-yyyy")
private Date dateOfBirth;

我尝试过不同的组合,但都给了我同样的错误。任何人都可以帮我这里缺少的东西。

共有1个答案

岳泉
2023-03-14

< code>*{dateOfBirth}具有特定的含义。当您使用< code>*表示法时,您指的是您选择的< code>th:object的属性。当您使用< code>${}表达式时,您会丢失它。为了指定相同的变量,您应该使用< code>#object表达式变量(或者命名相关变量的完整路径)。

<td th:text="${#dates.format(#object.dateOfBirth,'dd-MM-yyyy')}">06/23/2013</td>

注意:由于您已经指定了变量的日期格式,我认为双括号语法应该适合您:

<td th:text="${{#object.dateOfBirth}}">06/23/2013</td>
 类似资料: