【问题标题】:spring boot test h2 data.sql wrong locale date formatspring boot 测试 h2 data.sql 错误的语言环境日期格式
【发布时间】:2018-12-05 01:38:36
【问题描述】:

我有一个包含这些 DML 命令的文件 data.sql 的 Spring Boot 应用程序:

插入示例 (id, created) 值 (1, to_date('01-JAN-18', 'DD-MON-RR'));

插入示例 (id, created) 值 (2, to_date('01-JAN-18', 'DD-MON-RR'));

由于以下错误,加载 Spring 上下文后 Spring Boot 测试将失败:

函数“TO_DATE”:无效的日期格式:“试图解析其中一个 '[dÚc., juin, mai, fÚvr., mars, ao¹t, nov., janv., avr., juil., sept., oct.]' 但失败了

这个问题是在我升级 spring-boot 之后引起的,但之前它在 2.0 版中正常工作,即。在 h2 中使用默认语言环境日期为英语 (01-JAN-18),而不是德国。

根本问题在哪里,或者有什么建议如何为 h2 数据库设置默认语言(由于操作系统的区域设置,它可能使用德国作为默认语言)?

【问题讨论】:

    标签: date spring-boot testing locale h2


    【解决方案1】:

    问题是,Spring boot 会根据您操作系统中的区域设置选择数据格式。

    我遇到了同样的错误,我更改了 Windows 机器中的区域,然后一切正常。 在 Windows 中转到控制面板 > 时钟和区域 > 更改日期时间或数字格式,然后将格式更改为美国英语(或任何你想要的)。

    【讨论】:

      【解决方案2】:

      可以通过如下更改日历/日期掩码来解决:

      insert into example (id, created) values (2, to_date('01-01-18', 'DD-MM-RR'));
      

      【讨论】:

        猜你喜欢
        • 2010-11-23
        • 2020-05-15
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        • 2023-04-03
        • 2014-03-16
        • 2017-03-31
        • 1970-01-01
        相关资源
        最近更新 更多