比如我现在有两个字符串 String input1="2014-05-23 09:23:33";
String input2="2014-05-23 上午09:23:33";该如何把他们转为Date类型,
用 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");只能转 input1 .如何写一个方法尽可能多的匹配多的样式或有什么方法可以实现吗?
String input2="2014-05-23 上午09:23:33";该如何把他们转为Date类型,
用 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");只能转 input1 .如何写一个方法尽可能多的匹配多的样式或有什么方法可以实现吗?
try{
SimpleDateFormat dateFormat = new SimpleDateFormat(simpleType);
return dateFormat.parse(stringDate);
}catch(Exception e){
return null;
}
}
/**
* String 转 Date
* auther: shijing
* 2014-5-9下午03:16:14
* @param str
* @param format
* @return
*/
public static Date string2Date(String str, String format) {
DateFormat dateFormat = new SimpleDateFormat(format);
Date date = null;
try {
date = dateFormat.parse(str);
}
catch (ParseException e) {
e.printStackTrace();
}
return date;
}这就是我现在经常写的DateUtils的其中一个方法
不停地try catch去尝试,成功了就return,失败了就继续parse。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test3 {
public static Date parseDate(String time) {
String pattern = "";
if (time.contains("-")) {
pattern += "yyyy-MM-dd";
} else if (time.contains("年")) {
pattern += "yyyy年MM月dd日";
}
if (time.contains("上午") || time.contains("下午")) {
if (!pattern.equals("")) {
pattern += " ";
}
pattern += "a";
}
if (time.contains(":")) {
if (!pattern.equals("")) {
pattern += " ";
}
pattern += "HH:mm:ss";
}
try {
return new SimpleDateFormat(pattern).parse(time);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) {
System.out.println(parseDate("2014-05-26 下午 16:22:13"));
System.out.println(parseDate("2014-05-26"));
System.out.println(parseDate("16:22:13"));
System.out.println(parseDate("2014-05-26 16:22:13"));
System.out.println(parseDate("2014年05月26日 16:22:13"));
}
}基本常用的没问题