2014-07-24 72 views
0

下面這個last_checked_datetime存儲在數據庫中是UTC格式我的日期,java中的Date()命令需要時間爲什麼?我的系統顯示utc,我也想要utc時間?

Timestamp ts1=rs9.getTimestamp("last_checked_datetime"); 
java.sql.Date last_chk=new java.sql.Date(ts1.getTime()); 
java.util.Date time=new java.util.Date(last_chk.getTime()); 
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("HH:mm:ss"); 
String old_time=sdf.format(time); 

當我把這個日期()是打印EST時間

String new_time=sdf.format(new Date()); 
Date date1 = sdf.parse(old_time); 
Date date2 = sdf.parse(new_time); 

我想這兩者的差異,但date1採取utc time and date2花費時間,這會在我的代碼中造成障礙? 請建議

+0

也許看看'GregorianCalendar'以允許時區控制。 – AlexR

+0

檢查了這一點: http://stackoverflow.com/questions/2891361/how-to-set-time-zone-of-a-java-util-date – alobodzk

+0

但相同的代碼,我的其他機器上使用,並且它可以正常工作。是否有任何與機器相關的問題,或者我必須在代碼 – qwerty

回答

1

嘗試設置默認時區本身 -

TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 
+0

非常感謝你的當前時區:) – qwerty

0

看看org.joda.time.DateTime

這可以讓你控制什麼時區所需的日期是在

例如:

DateTime.now().withZone(DateTimeZone.UTC).toDate() 
+0

中更改,但是我在其他機器上使用的代碼相同,並且它可以正常工作。是否有任何機器相關的問題,或者我需要在代碼中更改? – qwerty

+0

默認情況下,時區來自'user.timezone'系統屬性,因此如果這兩個機器的屬性不同,這可以解釋爲什麼結果之間存在差異。 –

+0

好吧,現在我明白了。謝謝:) – qwerty

0
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST")); 
//change the timezone 
cal.setTimeZone(TimeZone.getTimeZone("UTC"));