2014-09-01 8 views
0

Я пытаюсь преобразовать GMT время местное время устройства zone.But Время, GMTСкрытое GMT ​​время местного часового пояса - вопросы

String res; 
    TimeZone tz = TimeZone.getDefault(); 
    String strTimeZone = tz.getDisplayName(false, TimeZone.SHORT); 

    SimpleDateFormat sdfgmt = new SimpleDateFormat("HH:mma"); 
    sdfgmt.setTimeZone(TimeZone.getTimeZone("GMT")); 

    SimpleDateFormat sdfmad = new SimpleDateFormat("HH:mma"); 
    sdfmad.setTimeZone(TimeZone.getTimeZone(strTimeZone)); 

    String inpt = "09:00am"; 
    Date inptdate = null; 
    try { 
     inptdate = sdfgmt.parse(inpt); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("GMT:\t\t" + sdfgmt.format(inptdate)); 
    System.out.println("Current Time:\t" + sdfmad.format(inptdate)); 
    res = sdfmad.format(inptdate); 

возвращает время GMT 00:00 как am.I не могу конвертировать 9: время 12 утра по Гринвичу местного времени устройства зоны (GMT + 5: 30)

+0

привет попробовать это может быть поможет вам http://stackoverflow.com/questions/10725246/java -android-convert-a-gmt-time-string-to-local-time –

+0

Код выглядит нормально. Это действительно код, который вызывает проблемы? Рассмотрите возможность его отладки. – laalto

ответ

0

Попробуйте это:

String inpt = "09:00amZ"; 
Date date = null; 
try { 
    date = new SimpleDateFormat("HH:mmaX").parse(inpt); 
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mma"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT+05:30")); 
System.out.println(sdf.format(date)); 

обязательно добавьте «Z» в конце строки, чтобы сказать, что на этот раз в Часовой пояс GMT.

Если вам нужно по умолчанию для часового пояса устройства вместо жёстко заменить sdf.setTimeZone(TimeZone.getTimeZone("GMT+05:30")); на sdf.setTimeZone(TimeZone.getDefault());

Смежные вопросы