展開全部
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
創建SimpleDateFormat對象的時候使用帶Locale的構e69da5e6ba9062616964757a686964616f31333365633938造參數
因為你的星期和月份是用E文寫的 所以parse回來的時候自然得用E文的Locale 用默認中文的Locale就會認不出來
btw 你用US的Locale的話 時區也會跑那里去 所以你應該給時區指定GMT+08:00 而不是光一個GMT
參考這段小代碼
String s ="Thu, 02 Mar 2006 05:14:25 GMT+08:00";
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
SimpleDateFormat outSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.CHINA);
try {
Date dateS = inSdf.parse(s);
System.out.println(outSdf.format(dateS));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//1、定義轉換格式
SimpleDateFormat formatter ?= new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter2 ?= new SimpleDateFormat("yyyyMMdd");
//2、調用formatter2.parse(),將"19570323"轉化為date類型 ?輸出為:Sat Mar 23 00:00:00 GMT+08:00 1957
Date ?date = formatter2.parse(dateString);
//3、將date類型 ?(Sat Mar 23 00:00:00 GMT+08:00 1957)轉化為String類型
//注意現在用的是formatter來做轉換,輸出為String類型的:"1957-03-23"
String ?dString = formatter.format(date);
//4、將String轉化為date,需要注意java.sql.Date.valueOf()函數只能接受參數類型為yyyy-MM-dd類型的
Date data = java.sql.Date.valueOf(dString);
//5、將獲取的date類型的出生日期賦值給javabean
personAudit.setBirthDate((emp.getHealthCarePrincipalPerson() != null
&& emp.getHealthCarePrincipalPerson().getBirthTime() != null)?data:null)。