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.
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.