我對Java很新,我有點堅持使用SimpleDateFormat
和Calendar
。我有一個日期對象,並且想要提取GMT日期字符串,如yyyy-MM-dd HH:mm:ss
。我住在德國,目前我們是格林威治標準時間+0200。我的日期 - 對象的時間是例如2011-07-18 13:00:00
。我現在需要的是2011-07-18 11:00:00
。我的時區的偏移量應該自動計算。轉換GMT日期時間字符串
我想這樣的事情,但我想有一個錯誤的地方:
private String toGmtString(Date date){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone timeZone = TimeZone.getDefault();
Calendar cal = Calendar.getInstance(new SimpleTimeZone(timeZone.getOffset(date.getTime()), "GMT"));
sd.setCalendar(cal);
return sd.format(date);
}
在某些設備上像我希望它返回datestring。在其他設備上,偏移量計算不正確,我從輸入日期對象中收到日期和時間。你能給我一些提示或建議嗎?我想我得到默認時區的方式不起作用?
我不敢相信這很容易,但我當然也會嘗試。請給我幾分鐘的時間... – Marco
好的..測試..我用了一個代表'2011-07-18 13:34:27'的日期對象。使用默認的日期函數'.toGMTString()'我收到'18 Jul 2011 11:43:27 GMT'這是我需要的確切時間點。使用我自己的函數,我仍然收到'2011-07-18 13: 43:27'這是我的問題。使用Jigar Joshin的功能,我收到'2011-07-18 12:43:27',這是缺少1小時(歐洲夏令時)。使用Eli Acherkans功能,我收到了'2011-07-18 11:43:27',這正是我想要的(偏移包括歐洲夏令時)。 – Marco
+1 <!--------------> –