java中如何能把一个字符串转成日期对象



题目3.1: 把一个字符串转成日期对象
当我们想根据输入字符串得到一个日期对象时我们不知道,应该以什么格式写这个字符串,才能被系统正确解析,一种聪明的做法是,马克-to-win,我们先 把日期对象根据我们的格式打印出来,之后照打印出来的样子,一丝不差的写这个字符串,这个字符串必定能被系统正确解析。下面这个例子,就是先把日期对象根 据我们的格式打印出来。之后才涉及到解析。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Test {
    public static void main(String[] args) {
        Date date;
        Calendar cal = Calendar.getInstance();
/*先把日期对象根据我们的格式打印出来 can give us some direction to parse the string to Date format.");*/
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G W a E");
        String mDateTime=formatter.format(cal.getTime());
        System.out.println("mDateTime is"+mDateTime);
 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G W a E");
        Date d = null;
        try {
/*模仿之前打出来的字符串的格式,照葫芦画瓢按上面格式写下面的字符串, 之前打印出来是这样子2014-05-30 14:17:54 公元 5 下午 星期五,马克-to-win, 所以我就写成如下的样子*/        
            d = sdf.parse("2008-11-04 09:53:45 公元 2 上午 星期二");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("mDateTime1 is"+d);

    }
}


结果是:
mDateTime is2014-05-31 15:15:30 公元 5 下午 星期六
mDateTime1 isTue Nov 04 09:53:45 CST 2008