2013-03-18 19 views
0

我想獲得UTC時區中的Date對象,所以我將它首先轉換爲一個字符串,它正在喚醒我正確的UTC日期字符串,但是當我再次將它解析爲Date對象時,則本地時區字符串(即IST)正在附加在該日期而不是UTC。爲什麼本地timeZone字符串正在被附加在UTC日期中?

 Date date = new Date(); 
     DateFormat timeFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
     timeFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
     String estTime = timeFormat.format(date); 
     date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss", Locale.ENGLISH).parse(estTime); 
+0

你想獲得UTC的當前時間? – 2013-03-18 12:24:07

+0

是的,但只是以Date對象的形式。 – user2182258 2013-03-18 12:26:20

回答

2

A Date沒有時區,它代表了時間。它保持以毫秒爲單位的時間。

你不能有一個格式的Date,它不會那樣工作。如果您需要在GUI,控制檯或其他任何位置顯示Date,那麼當您使用SimpleDateFormat時,您可以按照所需的格式將其更改爲String

+0

我需要將此Date對象傳遞給數據庫... – user2182258 2013-03-18 12:31:01

+0

數據庫將使用自己的格式來保存'Date',它不需要時區。除非'Date'數據庫中的字段是'String'(或與之相當),否則不需要對日期做任何事情。使用'PreparedStatement'並直接將'Date'傳遞給它。 – 2013-03-18 12:33:49

+0

在那種情況下,存儲的時間將是服務器特定的?我需要存儲時間(僅根據UTC時區).. ?? – user2182258 2013-03-18 12:39:48

相關問題