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