2013-03-06 44 views
-2

我想在java.I中的兩個時區之間轉換日曆對​​象,應傳遞第一個日曆對象,並希望輸出成爲具有不同時區的已修改日曆對象。Java中不同時區之間的日曆轉換

有人可以提供一種方法,如何做到這一點?

這是我做了什麼......

DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
GregorianCalendar pst = new GregorianCalendar(); 
GregorianCalendar est = new GregorianCalendar(); 
pst.setTime(maintWindow); 
int year = pst.get(Calendar.YEAR); 
int month = pst.get(Calendar.MONTH); 
int day = pst.get(Calendar.DAY_OF_MONTH); 
format.setTimeZone(timeZone); 
pst.set(year, month, day, hour, min); 
Date date = pst.getTime(); 
logger.info(date); 
logger.info(format.format(date)); 
logger.info(pst.getTime()); 
est.setTimeInMillis(date.getTime()); 
logger.info(est.getTime()); 

回答

0

您可以使用Calendar.setTimeZone

例如,如果你有一個Calendar參考cal有任何時區初始化,對方法的調用像這樣

cal.setTimeZone(TimeZone.getTimeZone("GMT")) 

修改的calGMT的時區。

+0

這是我根據您的建議修改的代碼 – Mahiz 2013-03-06 17:04:13

+0

'code'DateFormat format = new SimpleDateFormat(「yyyy-MM-dd HH:mm:ss」); TimeZone pstTimeZone = TimeZone.getTimeZone(「PST8PDT」); TimeZone estTimeZone = TimeZone.getTimeZone(「EST5EDT」); GregorianCalendar pst = new GregorianCalendar(pstTimeZone); GregorianCalendar est = new GregorianCalendar(); logger.info(pst.getTime()); pst.setTimeZone(estTimeZone); logger.info(pst.getTime());'code' – Mahiz 2013-03-06 17:06:08

+0

但是,它在兩個記錄器中打印相同的時間戳。 – Mahiz 2013-03-06 17:06:38