我正在尝试使用日期格式将字符串转换为日期并使用以下代码,但它显示错误。
public static Date ConvertStringtodate(String Date) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date Teststart = dateFormat.parse(Date);
return Teststart;
}
public static void main(String[]agrs) throws ParseException {
System.out.println(ConvertStringtodate("2022.02.10 17:54:55"));
}
这是错误
线程“main”中的异常 java.lang.IllegalArgumentException:不能 将给定对象格式化为日期 java.text.DateFormat.format(DateFormat.java:310) 在 java.text.Format.format(Format.java:157)
在主要方法中,您将发送日期为
2022.02.10 17:54:55
。但是,您将模式的格式写为 yyyy-MM-dd hh:mm:ss
。将 SimpleDateFormat
构造函数中的模式更改为 yyyy.MM.dd HH:mm:ss
。
我的问题是日期输入中的斜杠“/”。由于某种原因。输入字符串是“01/01/1991”而不是“01-01-1991”。所以我只是用破折号替换了斜线,一切都很好。
private Date convertStringToDate(String payload) throws ParseException {
payload = payload.replace("/", "-");
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
java.util.Date utilDate = formatter.parse(payload);
return new Date(utilDate.getTime());
}