本文介紹了SimpleDateFormat忽略時區的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我讀了很多關于這方面的帖子,但是,我顯然遺漏了一些東西。我有日期字符串和時區。我正在嘗試實例化一個日期對象,如下所示:
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
java.util.Date dateObj = sdf.parse("2013-10-06 13:30:00");
System.out.println(dateObj);
打印的內容是:
Sun Oct 06 09:30:00 EDT 2013
我需要的是UTC格式的Date對象。沒有一家改用EDT。我做錯了什么?
謝謝。
推薦答案
這是因為Date對象不存儲任何時區信息。DATE基本上只存儲自紀元(1970年1月1日)以來的毫秒數。默認情況下,Date將使用與JVM關聯的時區。為了保留時區信息,您應該繼續使用已有的DateFormat對象。
參見DateFormat#Format(Date):http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html#format(java.util.Date)
以下內容應能滿足您的需求:
System.out.println(sdf.format(dateObj));
這篇關于SimpleDateFormat忽略時區的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,