我有一个日期时间信息字符串,我正尝试将其转换为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)
答案 0 :(得分:-1)
您的模式不包括相关的时间信息。您也需要包括在内。
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(stringDate);
答案 1 :(得分:-1)
这取决于您要实现什么目标?
如果结果是带有小时,分钟和秒的日期,则DateFormatter比DateTimeFormatter更合适
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, formatter);
OR
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalTimeDate localDateWithTime = LocalTimeDate.parse(date, formatter);
之所以产生错误,是因为您想使用DateTimeFormatter
而不是LocalDate
来生成日期,而该日期不带LocalTimeDate
,而CharSequence
的类型正确您的图案格式。
注意:您不必将String
强制转换为yyyy-MM-dd
编辑2:
如果要将日期选择器中的日期设置为2019-08-28,则模式应为MM-dd-yyyy
而不是@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));
}
。
这里的JUnit测试有效了我的意思:
var BuildContent = [{ 'Cal': Cal, 'BarLength': BarLength, 'Color':
Color }];
content = JSON.stringify(BuildContent);
$.ajax({
type: "POST",
url: "../Build/Build",
data: {'content':content},
ContentType: "application/json",
dataType: "json",
});