我有一个org.joda.time.DateTime对象,需要检索军事时区的缩写(例如,对于UTC-07:00为 T ,对于UTC-08:00为 U ,对于UTC±00:00为 Z )。

参见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还是其他形式的库)?

如果还有更好的方法来计算偏移量,请随时告诉我。

最佳答案

这是很少的代码,您最好自己动手做...

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

关于java - 获取军事时区缩写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19965056/

10-10 16:29