我一直在閱讀這個主題的很多帖子,並一直在嘗試代碼示例,但我似乎無法讓我的解析工作。解析日期時間字符串與各種瀏覽器的時區
我的窗體上有一個dijit DateTextBox。我注意到,當在不同的瀏覽器中使用時,我會收到不同的String日期時間。比如今天的日期:
IE8:
Fri Mar 11 00:00:00 MST 2011
的Mozilla /鉻/ Safari瀏覽器:
Thu Mar 11 2011 00:00:00 GMT-0700 (US Mountain Standard Time)
歌劇:
Thu Mar 11 2011 00:00:00 GMT-0700
在我的代碼創建了以下的SimpleDateFormat的:
private final static SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
private final static SimpleDateFormat dateFormat2 = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zZ (zzzz)", Locale.US);
private final static SimpleDateFormat dateFormat3 = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zZ", Locale.US);
我再試試,後來解析它是這樣的:
try {
calcDate = dateFormat.parse(changeDate);
} catch (ParseException e) {
try {
calcDate = dateFormat2.parse(changeDate);
} catch (ParseException e2) {
try {
calcDate = dateFormat3.parse(changeDate);
} catch (ParseException e3) {
e3.printStackTrace();
}
}
}
到目前爲止,只有IE8正確分析。我創建了一些語句來在解析之前輸出字符串,它看起來像我的格式匹配模式。
我甚至安裝了喬達時庫和嘗試了一些像這樣的例子:
String currentDate = "Sun Mar 29 2009 00:00:00 GMT-0700";
DateTimeFormatter formatter = DateTimeFormat.forPattern("EEE MMM dd yyyy HH:mm:ss zZ");
DateTime myDate = formatter.parseDateTime(currentDate);
這給我的錯誤「無效的格式..... GMT-0700的格式不正確」
請讓我知道我做錯了什麼。謝謝