public static Date getDate(String st){
Date date = null;
if (st==null)return null;
//如果是以.结尾的话,就去掉
if(st.endsWith(".")){
st = st.substring(0,st.length()-1);
}
String pattern= "yyyy/MM/dd HH:mm:ss";
String pattern2= "yyyy-MM-dd HH:mm:ss";
try {
if (st.trim().length()<11){
pattern= "yyyy/MM/dd";
pattern2= "yyyy-MM-dd";
}
if (st.length()>19) {
st = st.substring(0, 19);
}
if (Pattern.matches("\\d{4}年\\d{1,2}月\\d{1,2}日 \\d{2}:\\d{2}:\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}/\\d{2}/\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat(pattern);
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2} \\d{1,2}:\\d{2}:\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat(pattern);
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}\\.\\d{2}\\.\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat(pattern2);
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{4}\\.\\d{2}\\.\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd HH.mm.ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}\\d{2}\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{2}:\\d{2}:\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}\\d{2}\\d{2} \\d{2}\\d{2}\\d{2}", st)||Pattern.matches("\\d{4}\\d{2}\\d{2}\\d{2}\\d{2}\\d{2}", st)){
SimpleDateFormat sd = st.contains(" ")?new SimpleDateFormat("yyyyMMdd HHmmss"):new SimpleDateFormat("yyyyMMddHHmmss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}\\d{2}\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HHmmss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd");
date = sd.parse(st);
}else if (Pattern.matches("\\d{1,2}/\\d{1,2}/\\d{2} \\d{1,2}:\\d{1,2}:\\d{1,2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}-\\d{1,2}-\\d{2} \\d{1,2}:\\d{1,2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm");
date = sd.parse(st);
}else if (Pattern.matches("\\d{4}/\\d{1,2}/\\d{1,2} \\d{1,2}:\\d{1,2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd HH:mm");
date = sd.parse(st);
}else if (Pattern.matches("\\d{6}", st)){
SimpleDateFormat sd = new SimpleDateFormat("HHmmss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{14}", st)){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{2}\\.\\d{2}\\.\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("HH.mm.ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{2}:\\d{2}:\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("HH:mm:ss");
date = sd.parse(st);
}else if (Pattern.matches("\\d{2}/\\d{2}/\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("MM/dd/yy");
date = sd.parse(st);
}else if (Pattern.matches("\\d{1}/\\d{1}/\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("M/d/yy");
date = sd.parse(st);
}else if (Pattern.matches("\\d{2}/\\d{1}/\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("MM/d/yy");
date = sd.parse(st);
}else if (Pattern.matches("\\d{1}/\\d{2}/\\d{2}", st)){
SimpleDateFormat sd = new SimpleDateFormat("M/dd/yy");
date = sd.parse(st);
}else if (Pattern.matches("\\d{5}", st)){
Calendar calendar = new GregorianCalendar(1900,0,-1);
Date d = calendar.getTime();
date = org.apache.commons.lang3.time.DateUtils.addDays(d,Integer.valueOf(st));
}else if (Pattern.matches("^0\\..*", st)){
Double aDouble = Double.valueOf(st);
Long sencod =new Double(aDouble*16*3600).longValue();
date = secondToDate(sencod);
}else if (Pattern.matches("\\d{5}\\..*", st)){
Calendar calendar = new GregorianCalendar(1900,0,-1);
Date d = calendar.getTime();
date = org.apache.commons.lang3.time.DateUtils.addDays(d,Integer.valueOf(st.split("\\.")[0]));
Double aDouble = Double.valueOf("0."+st.split("\\.")[1]);
Long sencod =new Double(aDouble*24*3600*1000).longValue();
date = new Date(date.getTime()+sencod);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
return date;
}
}
書式文字列(最終バージョン)
おすすめ
転載: blog.csdn.net/lzh657083979/article/details/105307695
おすすめ
ランキング