Я не могу получить точное время для определенного часового пояса, такого как "EST", который является GMT-5 в целом, но сейчас он учитывает дневное сбережение, которое составляет GMT-4. Но в java и android обе показывают разницу в 1 час (требуется только GMT-5, а не GMT-4). Но в точках сети он отображается правильно. Моя проблема такая же, как и как справиться с летней экономией, используя Timezone в java. Но я могу использовать только короткую форму TimeZone, такую как ("EST", "IST"). Пожалуйста, вы можете дать некоторое предложение, чтобы получить точное время, основанное на конкретном часовом поясе короткой формы (например, "EST"...)
Спасибо.
Там нет идеального ответа на этот вопрос, поскольку вы в основном получили неполную информацию. Однако здесь некоторый код, чтобы найти все поддерживаемые часовые пояса, которые используют аббревиатуру "EST" (в не-дневное время, в локали США):
import java.util.*;
public class Test {
public static void main(String[] args) {
for (TimeZone zone : getMatchingTimeZones("EST")) {
System.out.println(zone.getID());
}
}
public static List<TimeZone> getMatchingTimeZones(String target) {
List<TimeZone> list = new ArrayList<TimeZone>();
for (String id : TimeZone.getAvailableIDs()) {
TimeZone zone = TimeZone.getTimeZone(id);
String actual = zone.getDisplayName(false, TimeZone.SHORT, Locale.US);
if (actual.equals(target)) {
list.add(zone);
}
}
return list;
}
}
Как вы попадаете из этого списка в фактический часовой пояс, который вам нужен, зависит от вас. (Также я не знаю, будет ли это работать на Android. Я не пробовал.)