2013-11-13 1 views
19

У меня есть org.joda.time.DateTime объекта, и мне нужно, чтобы получить военные часовой пояс аббревиатуры (например T для UTC-07: 00, U для UTC-08: 00, Z для UTC ± 00: 00).Получить Military Time Zone Аббревиатура

См 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"); 

Существует ли функции или библиотеки (в Йоде или иным образом), которая уже содержит отображение часовых поясов для военных сокращений?

Не стесняйтесь, дайте мне знать, если есть лучший способ рассчитать смещение.

+2

http://sourceforge.net/p/joda-time/discussion/337835/thread/51d091f2/ – assylias

+0

Я не пробовал это с JODA, но я знаю, что для того, чтобы это работало с java.util.Date (что отстойно, я знаю), мне пришлось немного подгонять финал. – Taylor

+5

Как указывает assylias, такой поддержки нет в [Joda-Time] (http://www.joda.org/joda-time/). [JSR 310: API по дате и времени] (http://jcp.org/en/jsr/detail?id=310) является преемником Joda-Time и интегрирован с будущей Java 8. Если вы заботитесь об этом вы можете проверить с командой JSR, чтобы узнать о добавлении поддержки. Это может быть только вопрос добавления реализации форматирования (я не знаю, я не думал об этом). Команда была открыта для участников в прошлом и может по-прежнему принимать ваш вклад или кодовое пожертвование. –

ответ

2

Это такой небольшой код, который вы можете также просто сделать это самостоятельно ...

static final String MAPPING = "YXWVUTSRQPONZABCDEFGHIKLM"; 
... 
    String timeZoneCode = MAPPING.substring(offset + 12, offset + 13); 
+0

Принимая это как более умную альтернативу использованию HashMap, считая, что смещение уже нормализовано, чтобы составлять половину и четверть часа, как @Ben упомянул в своем комментарии к моему вопросу. –