我正在尝试将字符串转换为日期
我尝试了几种方法,但是我都得到了相同的结果。请有人帮我。
String stringDate ="20181228184821";
Date date = null;
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
try {
date = sdf1.parse(stringDate);
System.out.println(date);
} catch (ParseException e) {
System.out.println("ICICIBusinessLogic Error in converting input date string ****" + e);
}
我收到以下异常:
转换输入日期字符串**** java.text.ParseException时出错: 无法解析的日期:“ 20181228184821”
答案 0 :(得分:2)
您的stringDate应该与您的格式完全匹配。
20181228184821 => 20181228 18:48:21
应该可以工作。
或将格式更改为yyyyMMddHHmmss
答案 1 :(得分:1)
您使用了错误的模式,请改用以下内容:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmmss");
此外,SimpleDateFormat
早已过时,请使用java-8的java.time
LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
答案 2 :(得分:1)
您应该使用DateTimeFormatter
和java.time
中的新类,而不是旧的SimpleDateFormat
api。话虽如此,您似乎对输入和输出格式感到困惑。
String fmtIn = "yyyyMMddHHmmss", fmtOut = "yyyyMMdd HH:mm:ss";
String stringDate = "20181228184821";
TemporalAccessor dt = DateTimeFormatter.ofPattern(fmtIn).parse(stringDate);
System.out.println(LocalDateTime.from(dt));
System.out.println(DateTimeFormatter.ofPattern(fmtOut).format(dt));
答案 3 :(得分:0)
“简单日期格式”构造函数中指定的模式应与要解析的字符串相同。
尝试
String stringDate ="20181228 18:48:21";