gpt4 book ai didi

java - 如何将日期时间数据字符串转换为 LocalDate?

转载 作者:行者123 更新时间:2023-12-01 06:21:43 30 4
gpt4 key购买 nike

我有一个日期时间信息字符串,我正在尝试将其转换为 LocalDate 字段。字符串的内容是“2019-08-28 09:00:00”。我正在尝试将 MM/dd/yyyy LocalDate 值加载到 JavaFX DatePicker 字段中。

我已经尝试过

Date date = new SimpleDateFormat("MM/dd/yyyy").parse(stringDate);

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate localDate = LocalDate.parse((CharSequence) date, formatter);

两者都返回了错误。选项 #2 返回的错误如下:

Caused by: java.time.format.DateTimeParseException: Text '2019-08-30 12:00:00' could not be parsed at index 2
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDate.parse(LocalDate.java:400)
at utils.DateTimeConverter.convertStringDateToLocalDate(DateTimeConverter.java:27)

最佳答案

这取决于您想要实现什么?

如果结果是包含小时、分钟和秒的日期,则 DateFormatter 比 DateTimeFormatter 更合适

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, formatter);

或者

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalTimeDate localDateWithTime = LocalTimeDate.parse(date, formatter);

生成该错误是因为您想要使用 LocalDate 而不是 LocalTimeDate 使用 DateTimeFormatter 生成没有(小时、分钟等)的日期 这是您的模式格式的正确类型。

注意:您不必将 CharSequence 转换为 String

编辑 2:

如果您要放入日期选择器中的日期是 2019-08-28,则模式应为 yyyy-MM-dd 而不是 MM-dd-yyyy

这里的 JUnit 测试验证了我所说的:

@Test
public void testDate() {
String date = "2019-08-30 12:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localTimeDate = LocalDateTime.parse(date, formatter);
assertTrue(localTimeDate.toString().equals(date));
}

@Test
public void testDateWithoutTime() {
String date = "2019-08-30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, formatter);
assertTrue(localDate.toString().equals(date));
}

关于java - 如何将日期时间数据字符串转换为 LocalDate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57700037/

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