Я создаю объект календаря из строки даты, которую я получаю.
Calendar cal = Calendar.getInstance();
String date = "example Mon, 22 Oct 2012 23:58:31 GMT";
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
sdf.setTimeZone (TimeZone.getTimeZone ("PST"));
try {
cal.setTime(sdf.parse(date));
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("date "+sdf.format(cal.getTime()));
Эта дата без проблем преобразует и печатает время по Гринвичу в PST.
Затем я перебираю массив объектов элементов и добавляю секунды
int offset = element.getSeconds;
cal.add(Calendar.SECOND, offset);
System.out.println("times cal offset: " + cal.getTime());
Этот кал теперь печатает время сервера (восточное время), а не преобразованное время по Гринвичу, которое напечатано выше. Что-то обходит кал, созданный из даты строки gmt, когда добавляются секунды?
Спасибо!