martedì 21 giugno 2011

Ora locale di ogni paese sulla base GMT con Java Inserito da Dinuka Arseculeratne

Inserito da Dinuka Arseculeratne


In una recente richiesta di modifica di una applicazione su cui stavo lavorando, è stato chiesto di aggiornare il timestamp un certo compito è stato fatto in base alla posizione dell'utente.Abbiamo una tabella separata Paese che ha conservato l'azione GMT e GMT off set definito in pochi minuti.

In un


Stavo cercando un modo per ottenere l'ora locale di un certo paese utilizzando l'oggetto calendario.Ci sono stati molti siti che hanno dato varie informazioni che mi ha portato a trovare un lavoro in giro per il test con diversi parametri.Questo è ciò che mi è venuta alla fine.


In seguito ho incapsulato il risultato finale in un metodo per cui sarebbe più facile da capire e da usare se qualcuno ha bisogno mai;

01.pubblici statici finale GMT_STR String = "GMT" ;
02.pubblici statici finale COLON_STR String = "" ;
03.pubblici statici finale ZERO String = "0" ;
04.
05./ **
06.* Questo metodo avrà come parametri l'GMT off set in pochi minuti
07.* come pure le azioni GMT cioè + o - e sulla base di che
08.* uscita del calendario che rappresenta l'oggetto che in quel momento specifico
09.* posizione.Il GMT è definito in pochi minuti, in modo che il calcolo è
10.* semplificata.
11.* @ param gmtOffSetHrs
12.* @ param gmtAction
13.* @ return
14.* /
15.pubblici statici Calendario GetLocalTime ( int gmtOffSetMins,
16.gmtAction String) {
17.
18./ / In questo modo ottenere la parte quoziente della divisione
19.int gmtHours = (gmtOffSetMins / 60 );
20./ / Questo otterrà il resto della divisione che ci darà la
21./ / minuti porzione
22.Integer gmtMins Integer.valueOf = ((gmtOffSetMins% 60 ));
23.se (gmtMins < 10 ) {
24.gmtMins = Integer.valueOf (gmtMins + "0" );
25.}
26.
27./ **
28.* Questo produrrà una stringa nel formato GMT +5:30
29.* /
30.gmtString String = null ;
31.se (gmtMins == 0 ) {
32.gmtString = GMT_STR gmtAction + + + gmtHours COLON_STR gmtMins + + ZERO;
33.} else {
34.gmtString = GMT_STR + gmtAction gmtHours + + + COLON_STR gmtMins;
35.}
36.
37./ **
38.* Questo oggetto calendario vi darà l'ora locale del paese specifico
39.* in base alle ore gmt offset e l'azione passata.
40.* /
41.ritorno Calendar.getInstance (TimeZone.getTimeZone (TimeZone.getTimeZone (
42.gmtString.trim ()). getID ()));
43.
44.}

Quello è tutto ciò che serve.Il calendario sarà restituita l'ora locale di quel paese specifico a seconda del minuto GMT e azione passata.Si noti che ho dato il GMT in pochi minuti per facilitare il calcolo.Normalmente si ottiene il GMT in ore così hai bisogno di convertire quello a minuti.

Ofcourse quando l'ora legale entra in gioco sarà necessario cambiare questa conseguenza.Per la nostra applicazione non è stato necessario in modo che non abbiamo fatto questo cambiamento.Per gestire l'ora legale dovremo mantenere le modifiche luce salvifica giorno da qualche parte e detrarre o aggiungere opportunamente alla base GMT.

Se voi ragazzi sa comunque di fare questo in modo molto più semplice o avete qualche suggerimento per migliorare pls lasciare un commento che è come sempre molto apprezzato.

Corso Java - Corsi Java - Corsi programmazione Java

Corso programmazione Android - Certificazione Android

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.