无法将 JavaFX Datepicker 日期转换为指定的日期格式
Can't Convert JavaFX Datepicker date to a specified date format
无法将 javaFX Datepicker 日期转换为特定的 (dd-MM-yyyy) 日期格式。
在这里我使用了两种使用 SimpleDateFormat 的方法,但是我遇到了一些这样的错误。
使用此方法时
String testDateString = dpfrom.getValue().toString();
DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date d1 = df.parse(testDateString);
System.out.println("Date in dd/MM/yyyy format is: "+df.format(d1));
错误信息是:
java.text.ParseException: Unparseable date: "2019-09-23"
使用此方法时:
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date d1= sdf.parse(dpfrom.getValue().toString());
System.out.println(d1);
我得到了这个输出:
Fri Mar 11 00:00:00 IST 29
但我想要这样的输出:
23-09-2019
请帮我解决这个问题。
我希望你们解决这个问题 problem.Thank 你们...
试试这个
private void dateTest() {
try {
String testDateString = "2019-09-23";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = df.parse(testDateString);
System.out.println(d1);
df = new SimpleDateFormat("dd-MM-yyyy");
String d2 = df.format(d1);
System.out.println(d2);
} catch (ParseException e) {
e.printStackTrace();
}
}
输出
Mon Sep 23 00:00:00 ICT 2019
23-09-2019
在您的情况下,将 testDateString 更改为 dpfrom.getValue().toString();
因为您已将问题标记为 Java8 JavaFX8 问题。这是 LocalDate
更 Java-8 的时尚答案:
String static final DATE_PATTERN = "yyyy-MM-dd"
String datePickerValue = dpfrom.getValue().toString();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DATE_PATTERN);
LocalDate date = LocalDate.parse(datePickerValue, dtf);
这实际上是新的 Java 时间 API 自 Java 8 (java.time) 包
尝试将 LocalDate
转换为 String
然后尝试将其解析为 Date
是一个坏主意。直接用DateTimeFormatter
转成字符串即可:
final String format = "dd-MM-yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
System.out.println("Date in " + format + " format is: " + formatter.format(d1));
无法将 javaFX Datepicker 日期转换为特定的 (dd-MM-yyyy) 日期格式。 在这里我使用了两种使用 SimpleDateFormat 的方法,但是我遇到了一些这样的错误。
使用此方法时
String testDateString = dpfrom.getValue().toString();
DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date d1 = df.parse(testDateString);
System.out.println("Date in dd/MM/yyyy format is: "+df.format(d1));
错误信息是:
java.text.ParseException: Unparseable date: "2019-09-23"
使用此方法时:
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date d1= sdf.parse(dpfrom.getValue().toString());
System.out.println(d1);
我得到了这个输出:
Fri Mar 11 00:00:00 IST 29
但我想要这样的输出:
23-09-2019
请帮我解决这个问题。 我希望你们解决这个问题 problem.Thank 你们...
试试这个
private void dateTest() {
try {
String testDateString = "2019-09-23";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = df.parse(testDateString);
System.out.println(d1);
df = new SimpleDateFormat("dd-MM-yyyy");
String d2 = df.format(d1);
System.out.println(d2);
} catch (ParseException e) {
e.printStackTrace();
}
}
输出
Mon Sep 23 00:00:00 ICT 2019
23-09-2019
在您的情况下,将 testDateString 更改为 dpfrom.getValue().toString();
因为您已将问题标记为 Java8 JavaFX8 问题。这是 LocalDate
更 Java-8 的时尚答案:
String static final DATE_PATTERN = "yyyy-MM-dd"
String datePickerValue = dpfrom.getValue().toString();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DATE_PATTERN);
LocalDate date = LocalDate.parse(datePickerValue, dtf);
这实际上是新的 Java 时间 API 自 Java 8 (java.time) 包
尝试将 LocalDate
转换为 String
然后尝试将其解析为 Date
是一个坏主意。直接用DateTimeFormatter
转成字符串即可:
final String format = "dd-MM-yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
System.out.println("Date in " + format + " format is: " + formatter.format(d1));