65 votes

Obtenir le fuseau horaire actuel dans une application Android

Comment puis-je obtenir le fuseau horaire actuel dans mon application Android ? J'ai essayé d'utiliser ceci

Calendar cal = Calendar.getInstance( userConfig.locale);
TimeZone tz = cal.getTimeZone();   

Mais je n'obtiens pas le fuseau horaire. Comment puis-je afficher le fuseau horaire ?

128voto

John Points 1969

Utilisez cette

Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
Log.d("Time zone","="+tz.getDisplayName());

ou vous pouvez également utiliser le java.util.TimeZone classe

TimeZone.getDefault().getDisplayName()

29voto

Samir Mangroliya Points 21263
String timezoneID = TimeZone.getDefault().getID();
System.out.println(timezoneID);

Dans ma console, il imprime Asia/Calcutta

Et pour le format de date, je l'ai réglé sur .....

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy");
sdf2.setTimeZone(TimeZone.getTimeZone(timezoneID));

17voto

tjv Points 652

J'avais besoin d'un décalage qui ne comprenne pas seulement l'heure d'été, mais aussi un chiffre. Voici le code que j'ai utilisé au cas où quelqu'un chercherait un exemple.

J'obtiens une réponse de "11", ce qui correspond à ce que j'attendrais en NSW, Australie, en été. J'avais également besoin d'une chaîne de caractères pour pouvoir l'envoyer à un serveur, donc vous n'avez peut-être pas besoin de la dernière ligne.

TimeZone tz = TimeZone.getDefault();
Date now = new Date();
int offsetFromUtc = tz.getOffset(now.getTime()) / 3600000;
String m2tTimeZoneIs = Integer.toString(offsetFromUtc);

-10voto

gangeshwari Points 9

Pour afficher l'heure actuelle, vous devez exécuter l'extrait de code ci-dessous sur le thread de l'interface utilisateur. Cela a fonctionné pour moi :

Timer timer = new Timer();          
timer.schedule(new TimerTask() {          
    public void run() {      
        runOnUiThread(new Runnable(){      
            public void run() {      
                dateTxt.setText(new Date().toString());      
            }      
        });      
    }      
}, 0, 1000);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X