Получить военное сокращение часового пояса
У меня есть org.joda.time.DateTime
объект и мне нужно получить сокращение военного часового пояса (например, T для UTC-07: 00, U для UTC-08: 00, Z для UTC±00:00).
Смотрите http://en.wikipedia.org/wiki/List_of_military_time_zones
Вот как я сейчас это делаю:
int offset = dt.getZone().toTimeZone().getRawOffset() / (60 * 60 * 1000);
String timeZoneCode = timeZoneCodeMap.get(offset);
где timeZoneCodeMap
это HashMap<Integer, String>
который инициализируется с записями, подобными следующим
timeZoneCodeMap.put(1, "A");
timeZoneCodeMap.put(2, "B");
timeZoneCodeMap.put(3, "C");
...
timeZoneCodeMap.put(-10, "W");
timeZoneCodeMap.put(-11, "X");
timeZoneCodeMap.put(-12, "Y");
timeZoneCodeMap.put(0, "Z");
Существует ли функция или библиотека (в Joda или иным образом), которая уже содержит сопоставление часовых поясов с военными сокращениями?
Не стесняйтесь, дайте мне знать, если есть лучший способ рассчитать смещение, а также.
1 ответ
Решение
Это такой маленький код, что вы могли бы просто сделать это самостоятельно...
static final String MAPPING = "YXWVUTSRQPONZABCDEFGHIKLM";
...
String timeZoneCode = MAPPING.substring(offset + 12, offset + 13);