Как да преобразувам низа, съдържащ UTC време като 193526(19:35:26) в местна часова зона?

Пиша приложение за GPS и трябва да конвертирам низа от UTC време, получен от NMEA формат, в местно време.

Низовете са форматирани като "193526", което представлява 19:35:26 UTC (GMT).
Как мога да го преобразувам в местно време, например "15:35:26 EDT"?


person user2874190    schedule 26.03.2015    source източник
comment
stackoverflow.com/questions/4216745/   -  person Code Whisperer    schedule 26.03.2015
comment
Работата с часови/часови зони в java е разгледана широко и многократно на много места. Правили ли сте някакъв опит да потърсите ресурси, които биха отговорили на въпроса ви? Ако е така, покажете какво сте опитали досега.   -  person tnw    schedule 26.03.2015


Отговори (1)


EDT TimeZone не съществува в jdk. Вижте отговора тук.

Можете да направите преобразуването по следния начин:

    SimpleDateFormat formatUTC = new SimpleDateFormat("HHmmss");
    formatUTC.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = formatUTC.parse("193526");

    SimpleDateFormat formatEDT = new SimpleDateFormat("HH:mm:ss z");
    formatEDT.setTimeZone(TimeZone.getTimeZone("GMT-04:00"));
    System.out.println(formatEDT.format(date));

15:35:26 GMT-04:00

person T.Gounelle    schedule 26.03.2015
comment
Бих използвал EST, но за да се приспособя към лятното часово време - person njzk2; 26.05.2016