gpt4 book ai didi

java DateTimeFormatterBuilder 在测试时失败

转载 作者:行者123 更新时间:2023-11-29 08:28:20 24 4
gpt4 key购买 nike

我有一个简单的 jUnit 测试 DateTimeFormatterBuilder 。在运行时它可以工作,当一些 String来自 Spring-MVC 处理程序 ( @RequestParam )

在测试时它失败并显示相同的 String值。

测试值:25-May-2018 11:10

待测试方法:

public void getTimeDifference(@RequestParam String startDate, @RequestParam String endDate) {
DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy HH:mm").toFormatter();
LocalDateTime.parse(startDate,DATE_TIME_FORMAT);
return messages;
}

测试方法:

@Test
public void testFormat() throws Exception {
final String startDateFormatA = "25-May-2018 11:10";
final String endDateFormatA = "25-May-2018 11:10";
assertEquals("06:00", callDbController.getTimeDifference(startDateFormatA, endDateFormatA)[1]);
}

我的测试:在运行时我设置了一个断点并在显示 View 上测试它:

LocalDateTime.parse("25-May-2018 11:10",DATE_TIME_FORMAT)

在测试时使用相同的 spring-aplication-context 我执行与运行时相同的操作,但失败了。

有人有想法吗?

最佳答案

月份名称是英文,所以你最好在格式化程序中设置一个java.util.Locale

如果不设置,格式化程序将使用 JVM 默认区域设置。如果不是英语,您可能会收到错误(不同的环境可能有不同的配置,因此最好设置语言环境,而不是依赖 JVM 的默认值)。

只需执行 toFormatter(Locale.ENGLISH) 而不是 toFormatter() 即可。

关于java DateTimeFormatterBuilder 在测试时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com