TimeZone utcTimezone_ = TimeZone.getTimeZone("UTC");
TimeZone _utc = TimeZone.getTimeZone("Zulu");
DateFormat _fo = new SimpleDateFormat("yyyy-MM-dd HH:mm");
_fo.setTimeZone(_utc);
GregorianCalendar gc = new GregorianCalendar(_utc);
System.out.println(gc.getTime());
System.out.println(gc.get(GregorianCalendar.MINUTE));
System.out.println(gc.get(GregorianCalendar.HOUR_OF_DAY));
Пример из выходного сигнала при запуске выше код:GregorianCalendar неожиданные значения
Mon Sep 16 16:40:37 CST 2013
10
7
В этом случае я ожидал минут, чтобы быть 40 (а не 10) и час, чтобы быть 16 (не 7). Что я не понимаю об этом сейчас? Спасибо.
EDIT: Если изменить часовой пояс на ДКБ, который мой местный часовой пояс минута и час еще не совпадают:
TimeZone _utc = TimeZone.getTimeZone("CST");
DateFormat _fo = new SimpleDateFormat("yyyy-MM-dd HH:mm");
_fo.setTimeZone(_utc);
GregorianCalendar gc = new GregorianCalendar(_utc);
System.out.println(gc.getTime());
System.out.println(gc.get(GregorianCalendar.MINUTE));
System.out.println(gc.get(GregorianCalendar.HOUR_OF_DAY));
Выход:
Mon Sep 16 21:23:48 CST 2013
53
6
У устройства есть правильное время и час? – Reinherd
Я получаю 'Mon Sep 16 17:18:51 EST 2013' из' gc.getTime', '18' из' MINUTE' и '7' из' HOUR_OF_DAY'. Если я использую '_fo.format (gc.getTime())' I get '2013-09-16 07: 18' ... который, кажется, соответствует ... возможно,« Календарь »игнорирует часовой пояс. – MadProgrammer
Обратитесь к этому: http://stackoverflow.com/a/308689/624622 – AsG