Календарь для определенного TimeZone не показывает летнее время в Android и Java

1

Я не могу получить точное время для определенного часового пояса, такого как "EST", который является GMT-5 в целом, но сейчас он учитывает дневное сбережение, которое составляет GMT-4. Но в java и android обе показывают разницу в 1 час (требуется только GMT-5, а не GMT-4). Но в точках сети он отображается правильно. Моя проблема такая же, как и как справиться с летней экономией, используя Timezone в java. Но я могу использовать только короткую форму TimeZone, такую как ("EST", "IST"). Пожалуйста, вы можете дать некоторое предложение, чтобы получить точное время, основанное на конкретном часовом поясе короткой формы (например, "EST"...)

Спасибо.

  • 0
    ИМО ответ, на который вы ссылались, довольно ясен - то, что вы пытаетесь достичь, просто невозможно.
  • 2
    «EST» не соответствует летнему времени. «Восточное время» делает - но это EST, который становится EDT. «S» EST является «стандартным», то есть «нет перехода на летнее время».
Показать ещё 1 комментарий
Теги:
timezone
dst

1 ответ

2

Там нет идеального ответа на этот вопрос, поскольку вы в основном получили неполную информацию. Однако здесь некоторый код, чтобы найти все поддерживаемые часовые пояса, которые используют аббревиатуру "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. Я не пробовал.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню