无法解析日期异常

Ash*_*mar 2 java date date-format

我有字符串类型的日期和时间20/03/2018, 18:20:44是否可以在java中将其更改为日期格式?我试过这段代码:

public static Date getDate(String dateString) {
    DateFormat formatter = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss");
    formatter.setTimeZone(TimeZone.getTimeZone("PST"));
    try {
        Date date = formatter.parse(dateString);
        return date;
    } catch (ParseException e) {
        logger.error("error while parsing milliseconds to date" + dateString, e);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我无法解析异常并返回null

A. *_*ock 7

你在简单的日期格式中使用了错误的字符串替换,它应该是dd/MM/yyyy, HH:mm:ss.注意HH的大小写,你的时间是24小时格式,所以必须HH结束hh

因此,通过应用更改,您的代码将如下所示:

public static Date getDate(String dateString) {
  DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy, HH:mm:ss");
  formatter.setTimeZone(TimeZone.getTimeZone("PST"));
  try {
    return formatter.parse(dateString);
  } catch (ParseException e) {
    logger.error("error while parsing milliseconds to date" + dateString, e);
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

阅读更多关于此处可用的各种模式,除此之外,通常建议使用ISO 8601格式的日期,所以你的将是yyyy-MM-ddTHH:mm:ss