当前位置: 首页 > 面试题库 >

本地日期格式

史弘博
2023-03-14
问题内容

我有一个关于Spring + Thymeleaf日期格式的问题。我有一个简单的实体与LocalDate date领域。我想以表单形式从用户那里获取此日期并将其保存到MySQL数据库。我收到这样的错误:

无法将类型java.lang.String的属性值转换为属性日期所需的类型java.time.LocalDate;嵌套异常是org.springframework.core.convert.ConversionFailedException:无法从类型java.lang.String转换为值2019-04-30的类型java.time.LocalDate。嵌套的异常是java.time.format.DateTimeParseException:无法在索引2处解析文本2019-04-30

我的实体:

@Entity
@Table(name="game")
public class Game{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Transient
    private User gameOwner;
    private LocalDate date;
    private LocalTime time;

    //other fields

胸腺视图/形式:

<form action="#" th:action="@{/games/addForm}" th:object="${gameForm}" method="post">    
    <p>Date: <input type="date" th:field="*{date}" /></p>
</form>

这个问题的原因是什么?也许还有其他更好的存储日期的方法吗?


问题答案:

问题解决了..我不知道为什么,但是将模板更改为:

<input type="date" th:value="*{date}" th:field="*{date}" />

添加@DateTimeFormat(pattern = "yyyy-MM-dd")到实体字段即可解决该问题。



 类似资料:
  • 因此,我有一个类“Person”,它包含一个具有4个参数(3个字符串和1个本地日期)的构造函数和一个重写的toString方法,该方法将输出写入控制台(它还将LocalDate变量转换为字符串)。以下是代码: 现在,在main方法中,我创建了3个具有不同参数的不同对象,并将它们全部添加到ArrayList中,如下所示: 程序运行良好,我得到以下格式的输出: 现在,我希望这个日期显示为“1968年1

  • 问题内容: 我从服务器获取UTC时区的字符串日期,我需要将其转换为本地时区。 我的密码: 此打印- utc:2015-04-01T11:42:00.269Z,日期:可选(2015-04-01 11:42:00 +0000) 如果我删除 它打印 utc:2015-04-01T11:42:00.269Z,日期:可选(2015-04-01 08:42:00 +0000) 我的当地时区是UTC +3,在第

  • 我想把这个2021年1月20日20:10:14转换成yyyy-MM-dd'T'HH:MM:ss格式。Android系统中的SSS'Z'。目前我正在使用函数,但当我转换为本地格式时,我没有得到原始时间

  • 我尝试在java中使用本地化以本地样式打印日期。我已经使用数字和货币制作了类似的功能,但我未能将相同的行为应用到日期。 正如我在几天前发布此主题时所了解的,GraalVM Quarkus Locale在本机模式下,使用本机模式下的本地化需要使用创建一个“@AutomaticFeature”。 这个技巧适用于数字和货币: 但它不适用于DateTimeFormatter: 在开发模式下一切正常,但在原

  • 因此,有一个关于web应用程序的部分,用户可以向其中输入事件,web服务将这些事件以以下格式发送到移动应用程序: 我在尝试将字符串转换为日期时遇到了问题,这样我就可以从事件中获得时间(也可以在正确的时区中格式化),例如,这里有一个出现在“2015-03-20T20:00:00-07:00”上的字符串,当我拉动时,时间应该是太平洋时间1PM。但我得到的不是8PM就是3AM(这取决于我是否将UTC缩写

  • 问题内容: 我正在尝试将一个实例转换为一个实例。 我没有得到编译器错误,但是实例值是错误的。 我认为这不起作用,因为它存储时间而不是。 我正在使用JDK 1.8版。 问题答案: 您的输入实际上是一个。简单地将其解析为a 然后从中获取会更简单。无需担心时区,无需保留某些传统课程(避免并在可能的情况下…)