public static void main(String[] args) { String a = "2016-11-30 17:16:00"; String b = "2015-07-13 11:11:22.02"; String c = "1394438072"; String d = "Jul 26, 2017 2:27:13 PM"; String e = "2019-03-31"; String g = "2019-04-01 03:13"; String h = "1584516482676"; String i = "2014-06-27T08:11:07.168Z"; String j = "Tue Jan 14 16:11:26 +0800 2020"; DateFormat formatTo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = formatDate(a); Date date2 = formatDate(b); Date date3 = formatDate(c); Date date4 = formatDate(d); Date date5 = formatDate(e); Date date6 = formatDate(g); Date date7 = formatDate(h); Date date8 = formatDate(i); System.out.println(date!=null?formatTo.format(date):null); System.out.println(date2!=null?formatTo.format(date2):null); System.out.println(date3!=null?formatTo.format(date3):null); System.out.println(date4!=null?formatTo.format(date4):null); System.out.println(date5!=null?formatTo.format(date5):null); System.out.println(date6!=null?formatTo.format(date6):null); System.out.println(date7!=null?formatTo.format(date7):null); System.out.println(date8!=null?formatTo.format(date8):null); System.out.println(); } private static Date formatDate(String str) { SimpleDateFormat resultSdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); SimpleDateFormat resultSdfDate = new SimpleDateFormat("yyyy-MM-dd"); if (str == null) { return null; } if (str.contains("CST")) { try { Date date = resultSdf.parse(str); return date; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else if (str.contains("Z")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'.'sss'Z'"); try { Date date = sdf.parse(str); return date; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else if (str.contains("-") && str.contains(":") && str.length() == 16) { try { Date newDate = resultSdf.parse(str + ":00"); return newDate; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else if (str.contains("-") && str.contains(":")) { try { Date newDate = resultSdf.parse(str); return newDate; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else if (str.contains("-") && !str.contains(":")) { try { Date newDate = resultSdfDate.parse(str); return newDate; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else if (str.contains(",") && (str.contains("AM") || str.contains("PM"))) { try { DateFormat formatFrom = new SimpleDateFormat("MMM dd,yyyy KK:mm:ss aa", Locale.ENGLISH); Date date = formatFrom.parse(str); return date; } catch (ParseException e) { log.error("时间转换失败:{}", e.getMessage()); } } else { if (str.length() != 13) { int decrease = 13 - str.length(); for (int i = 0; i < decrease; i++) { str += "0"; } } try { Date date = new Date(Long.parseLong(str)); return date; } catch (NumberFormatException e) { log.error("时间转换失败:{}", e.getMessage()); } } try { Date date = new Date(str); return date; } catch (NumberFormatException e) { log.info("时间转换失败:{}", e.getMessage()); } return null; }
借鉴于该博客:https://blog.csdn.net/zzq900503/article/details/38925225
可以处理以下格式:
String a = "2016-11-30 17:16:00"; String b = "2015-07-13 11:11:22.02"; String c = "1394438072"; String d = "Jul 26, 2017 2:27:13 PM"; String e = "2019-03-31"; String g = "2019-04-01 03:13"; String h = "1584516482676"; String i = "2014-06-27T08:11:07.168Z"; String j = "Tue Jan 14 16:11:26 +0800 2020";