我知道這裏有幾個問題。但是我有一個特定日期模式的問題。這裏有一個例子:從字符串中提取時區
20130401100000[-03:EST]
我有troble與-03
因爲根據SimpleDateFormat
文檔應該有4位數字。我得到的最接近的模式是這樣的:
yyyyMMddHHmmss'['Z':'z']'
但是由於2位數字它不起作用。下面是我使用的測試代碼示例:
public static void main(String[] args) throws ParseException {
String input = "20130401100000[-03:EST]";
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss'['Z':'z']'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(new Date()));
System.out.println(df.parse(input));
}
當我打印new Date()
我得到這個:
20130528155734[+0000:GMT]
但是當我嘗試解析input
我得到以下異常:
Exception in thread "main" java.text.ParseException: Unparseable date: "20130401100000[-03:EST]"
at java.text.DateFormat.parse(DateFormat.java:337)
at Teste.main(Teste.java:17)
有誰知道我怎麼能解析input
到Date
與正確的TimeZone
?
我喜歡用'replaceAll'的解決方案,看起來優雅。謝謝 :-) –