将字符串转化为Date类型有关问题

将字符串转化为Date类型问题
以前用Date date = new Date(Str s) 就能将s转化为Date类型。
现在用Simpledateformat 还要先指定样式:如Simpledateformat  ss  = new  Simpledateformat  ("yyyy-MM-dd HH:mm:ss") 才能通过parse 转为Date类型。
但是有个问题,我想写个工具类,我不知道传入的字符串是哪种样式的,该如何转换成Date类型呢?求高手指教啊
------解决方案--------------------
做不到的。。。
------解决方案--------------------
完全自动是不可能的,可以正则表达式规定可以输入的几种格式再判断转化
------解决方案--------------------
穷举所有的类型,根据传入的参数类型去匹配要转换的类型。
------解决方案--------------------
传二个参数就可以,写一个工具类了,如:

public static Date toDateSafely(String simpleType,String stringDate){
try{
SimpleDateFormat dateFormat = new SimpleDateFormat(simpleType); 
    return dateFormat.parse(stringDate); 
}catch(Exception e){
return null;
}
}


------解决方案--------------------
commons里有DateUtils就可以
------解决方案--------------------
打个酱油而已22
------解决方案--------------------

/**
 * 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"));
}
}

基本常用的没问题
------解决方案--------------------
懒是要有界限的。。除非你知道你的格式是固定的那几种,然后一个一个地去试,不然的话是不可能有万能方法的
比如01/02/2014,不告诉你格式,你怎么知道这是2月1号,还是1月2号?这两种格式都是很常用的格式,所以无法判断