1184 votes

Obtenez de l'heure et la date actuelles sur Android

Comment puis-je obtenir la date et l'heure actuelles dans une application Android?

494voto

Vous pouvez utiliser android.texte.format.Temps:

Time now = new Time();
now.setToNow();

À partir de la référence ci-dessus:

Le Temps de classe est plus rapide de remplacement pour le java.util.Calendrier et java.util.GregorianCalendar classes. Une instance de la classe Temps représente un moment dans le temps, spécifié avec précision de seconde.


NOTE 1: Cela fait plusieurs années depuis que j'ai écrit cette réponse, et Google maintenant , ditque "[t]sa classe, il a un certain nombre de questions et il est recommandé que GregorianCalendar est utilisé à la place".


NOTE 2: Même si l' Time classe a un toMillis(ignoreDaylightSavings) méthode, ce n'est qu'une commodité de passer à des méthodes qui attendent le temps en millisecondes. La valeur de temps est seulement précis pour une seconde; les millisecondes partie est toujours 000. Si dans une boucle, vous ne

Time time = new Time();   time.setToNow();
Log.d("TIME TEST", Long.toString(time.toMillis(false)));
... do something that takes more than one millisecond, but less than one second ...

La séquence permet de répéter la même valeur, comme 1410543204000, jusqu'à ce que la seconde a commencé, au moment où 1410543205000 va commencer à répéter.

408voto

Miciurash Points 1505

Si vous souhaitez obtenir la date et l'heure dans un modèle spécifique, vous pouvez utiliser les éléments suivants:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());

243voto

ANemati Points 1436

Pour ceux qui ne préfèrent un format personnalisé, vous pouvez utiliser:

DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());

Alors que vous pouvez avoir DateFormat les motifs tels que:

"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01

128voto

kaneda Points 1693

En fait, il est plus sûr de définir le fuseau horaire actuel sur l'appareil avec Time.getCurrentTimezone(), ou vous risquez d'obtenir l'heure actuelle au format UTC.

Time today = new Time(Time.getCurrentTimezone());
today.setToNow();

Ensuite, vous pouvez obtenir tous les champs de date que vous souhaitez, comme par exemple:

textViewDay.setText(today.monthDay + "");             // Day of the month (1-31)
textViewMonth.setText(today.month + "");              // Month (0-11)
textViewYear.setText(today.year + "");                // Year 
textViewTime.setText(today.format("%k:%M:%S"));  // Current time

Voir android.texte.format.Le temps de classe pour tous les détails.

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