Джон близко, но из-за ограничений персонажа я не могу редактировать его ответ.Это тот же код, но с «EDT», измененным на «EST» для восточного стандартного времени.
long currentTime = System.currentTimeMillis();
int edtOffset = TimeZone.getTimeZone("EST").getOffset(currentTime);
int gmtOffset = TimeZone.getTimeZone("GMT").getOffset(currentTime);
int hourDifference = (gmtOffset - edtOffset) / (1000 * 60 * 60);
String diff = hourDifference + " hours";
Но это решение делает основное предположение, что TimeZone.getAvailableIDs () имеет в своем строковом массиве оба «EST"и" GMT ".Если этот метод не содержит эти строки часового пояса, он вернется с нулевым смещением.