字符串日期到 LocalDate 的转换
String Date to LocalDate conversion
我的应用程序提供日期格式,我正在尝试将该字符串转换为 LocalDate.Here 是我的代码
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateStringUtil {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
//SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
String date ="26 Aug 2019 09:46:09,469";
LocalDate ld = LocalDate.parse(date, dtf);
}
}
我遇到错误。知道如何解决它。
Exception in thread "main" java.time.format.DateTimeParseException: Text '26 Aug 2019 09:46:09,469' could not be parsed at index 2
at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
at java.time.format.DateTimeFormatter.parse(Unknown Source)
at java.time.LocalDate.parse(Unknown Source)
at src.DateStringUtil.main(DateStringUtil.java:24)
您输入的日期应与DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
中指定的格式相同
public static void main(String args[]) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
//SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
String date ="26/08/2019 09:46";
LocalDate ld = LocalDate.parse(date, dtf);
}
您可能需要参考此 Doc 格式。
您的日期时间格式与输入日期不匹配:
- 您的格式需要
dd/MM/yyyy hh:mm
格式的日期:26/08/2019 09:46
.
- 您的日期字符串是
dd MMM yyyy hh:mm:ss,SSS
模式中的日期:26 Aug 2019 09:46:09,469
Java DateTimeFormatter
文档提供了有关您可以使用的模式的更多信息:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
编辑:如果您想以不同的格式输出本地日期,请创建第二个 DateTimeFormatter
并将其传递给 format
方法。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateStringUtil {
public static void main(String[] args) {
DateTimeFormatter inputDtf = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss,SSS");
String date = "26 Aug 2019 09:46:09,469";
LocalDateTime ld = LocalDateTime.parse(date, inputDtf);
DateTimeFormatter outputDtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
String outputDate = ld.format(outputDtf);
}
}
我的应用程序提供日期格式,我正在尝试将该字符串转换为 LocalDate.Here 是我的代码
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateStringUtil {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
//SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
String date ="26 Aug 2019 09:46:09,469";
LocalDate ld = LocalDate.parse(date, dtf);
}
}
我遇到错误。知道如何解决它。
Exception in thread "main" java.time.format.DateTimeParseException: Text '26 Aug 2019 09:46:09,469' could not be parsed at index 2
at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
at java.time.format.DateTimeFormatter.parse(Unknown Source)
at java.time.LocalDate.parse(Unknown Source)
at src.DateStringUtil.main(DateStringUtil.java:24)
您输入的日期应与DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
public static void main(String args[]) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
//SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
String date ="26/08/2019 09:46";
LocalDate ld = LocalDate.parse(date, dtf);
}
您可能需要参考此 Doc 格式。
您的日期时间格式与输入日期不匹配:
- 您的格式需要
dd/MM/yyyy hh:mm
格式的日期:26/08/2019 09:46
. - 您的日期字符串是
dd MMM yyyy hh:mm:ss,SSS
模式中的日期:26 Aug 2019 09:46:09,469
Java DateTimeFormatter
文档提供了有关您可以使用的模式的更多信息:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
编辑:如果您想以不同的格式输出本地日期,请创建第二个 DateTimeFormatter
并将其传递给 format
方法。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateStringUtil {
public static void main(String[] args) {
DateTimeFormatter inputDtf = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss,SSS");
String date = "26 Aug 2019 09:46:09,469";
LocalDateTime ld = LocalDateTime.parse(date, inputDtf);
DateTimeFormatter outputDtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
String outputDate = ld.format(outputDtf);
}
}