将字符串解析成日期时的问题

[code="java"]import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
public static void main(String[] args){

// String datetime = "Mon Feb 8 22:47:35 CST 2010";
String datetime = "8 22:47:35 CST 2010";
// SimpleDateFormat sdf= new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy");
SimpleDateFormat sdf= new SimpleDateFormat("dd hh:mm:ss zzz yyyy");
Date date;
try{
date=sdf.parse(datetime);
System.out.println(sdf.format(date));
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}[/code]
为什么下面这么写就会抛出异常?
[code="java"]import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
public static void main(String[] args){

     String datetime = "Mon Feb 8 22:47:35 CST 2010";

// String datetime = "8 22:47:35 CST 2010";
SimpleDateFormat sdf= new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy");
// SimpleDateFormat sdf= new SimpleDateFormat("dd hh:mm:ss zzz yyyy");
Date date;
try{
date=sdf.parse(datetime);
System.out.println(sdf.format(date));
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}[/code]
[code="java"]Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'o'
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
at java.text.SimpleDateFormat.(SimpleDateFormat.java:501)
at java.text.SimpleDateFormat.(SimpleDateFormat.java:476)
at com.copote.net.test.Test.main(Test.java:11)[/code]

BEIST是北京时间的意思 Locale.CHINA试试

[code="java"] SimpleDateFormat sdf= new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy");[/code]

你可以这么说 “Date类的toString方法默认格式是dow mon dd hh:mm:ss zzz yyyy”

但是 SimpleDateFormat 中用如下样式
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

[code="java"]SimpleDateFormat sdf= new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy",Locale.US);[/code]

因为我用的是英文操作系统 ,可能你用的是中文操作系统。
默认的参数不一样,指定一下吧。