Java字符串到日期的转换

时间:2018-12-31 05:24:23

标签: java date

我正在尝试将字符串转换为日期

我尝试了几种方法,但是我都得到了相同的结果。请有人帮我。

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”

4 个答案:

答案 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)

应该使用DateTimeFormatterjava.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";