這是日期格式,我需要處理java的日期格式 - GMT 0700(PDT)
Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
但我沒有得到什麼,最後兩個部分。是否修復了GMT-0700
?應該是這樣的嗎?
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");
這是日期格式,我需要處理java的日期格式 - GMT 0700(PDT)
Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
但我沒有得到什麼,最後兩個部分。是否修復了GMT-0700
?應該是這樣的嗎?
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");
不,它不是固定的。這是一個時區。您可以將它與日期格式的Z
相匹配。
爲了更加精確,在SimpleDateFormat格式:
Z
的-0700
部分相匹配。GMT
已修復。用一些引號逃脫它。PDT
部分。 (PDT =太平洋夏令時)。您可以使用以下格式解析您的日期:
EEE MMM dd yyyy HH:mm:ss 'GMT'Z '('z')'
另一句話:Wed Aug
包含英語日期和月份,所以你必須與你的SimpleDateFormat 或翻譯使用英語語言環境將失敗。
new SimpleDateFormat("*format*", Locale.ENGLISH);
這裏的Javadoc:
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
對於這個例子:Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
,你想要的格式如下:
import java.text.SimpleDateFormat;
import java.util.Date;
public class JavaDate {
public static void main (String[] args) throws Exception {
String s= "Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)";
SimpleDateFormat sdf =
new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'z '('Z')'");
Date d = sdf.parse (s);
System.out.println ("Date=" + d + "...");
}
}
輸出示例:日期=星期二八月20 23:00:00 PDT 2013 ...
感謝上面的Arnaud Denoyelle他的編輯!
等等,我不明白。根據文檔:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html,'z'匹配'GMT'部分,'Z'匹配'-0700'部分。 – Cacheing
根據這份文件,'z'可以匹配'GMT-08:00',而不是'GMT-0800'。這就是爲什麼你必須手動隔離'GMT'部分。 'z'也可以單獨接收'GMT',但它會被認爲是'GMT + 00:00'。因此,再有一個'Z'('GMT + 00:00 -0700'=> 2時區)是沒有意義的。 –
對不起,這是一個錯字。我的意思是'z'匹配'PDT','Z'匹配'-0700'。我想你應該在這裏切換'z'和'Z',是嗎? – Cacheing