I know this subject has been beaten to death but after searching for a few hours to this problem I had to ask.
My Problem: do calculations on dates on a server based
You timezone string is formulated incorrectly. Try this,
String sign = secondsFromGMT > 0 ? "+" : "-";
secondsFromGMT = Math.abs(secondsFromGMT);
int hours = secondsFromGMT/3600;
int mins = (secondsFromGMT%3600)/60;
String zone = String.format("GMT%s%02d:%02d", sign, hours, mins);
TimeZone t = TimeZone.getTimeZone(zone);