java - 从使用 to_date 的数据库测试日期并针对 LocalTimeDate 进行测试

标签 java unit-testing java-8 localdate

我有一个旧程序,并将其升级到 Java 8。现在我想利用 LocalDateTime。我已经更新了实体,并且在数据库中的值显示为 10-APR-1990

但是我收到以下错误:

java.time.format.DateTimeParseException:无法在索引 3 处解析文本“10-APR-90”

在我的测试中,我尝试使用 DateTimeFormatter 解析它。

测试:

@Test
    public void testLocalDateTime() throws Exception {

        DateTimeFormatter formatter =
                DateTimeFormatter.ofPattern("dd-MMM-yy", Locale.US);

        Tcan1990 applicant = tcan1990Repository.findOne(new Tcan1990PK("000000009", 888067));

        assertEquals(LocalDateTime.parse("10-APR-90",formatter),applicant.getPymtDt());
    }

最佳答案

更新您的测试用例以使用不区分大小写的格式化程序,并将日期字符串解析为 LocalDate,并将时间设置为当天的开始,以获取 LocalDateTime。

@Test
public void testLocalDateTime() throws Exception {

    DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy").toFormatter(Locale.US);

    Tcan1990 applicant = tcan1990Repository.findOne(new Tcan1990PK("000000009", 888067));

    assertEquals(LocalDate.parse("10-APR-1990", formatter).atStartOfDay(), applicant.getPymtDt());

}

关于java - 从使用 to_date 的数据库测试日期并针对 LocalTimeDate 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109597/

相关文章:

java - 如何重命名java进程?

java - Docker 文件 COPY 然后 WORKDIR,但文件位于不同的目录中

java - 使用匿名对象的 actionListener 到底是如何工作的?

javascript - 我们如何在 Redux 异步操作中模拟获取?

C# - 在单元测试中断言两个对象相等

java - Spring boot @MockBean 疏远行为

java - 方法引用需要 API 级别 22

java - HtmlUnit 的 WebClient 在第二次相同的 loadWebResponse() 调用中失败

java - 具有继承的构造函数中的反射 (Java)

java - 在 Java 8 中运行 PowerMock 时如何修复VerifyError