web-dev-qa-db-fra.com

Obtenir l'année, le mois et la date en Android

J'essaie d'obtenir l'année, le mois et la date d'aujourd'hui en utilisant le code suivant;

Calendar calendar = Calendar.getInstance();

int thisYear = calendar.get(Calendar.YEAR);
Log.d(TAG, "# thisYear : " + thisYear);

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + thisMonth);

int thisDay = calendar.get(Calendar.DAY_OF_MONTH);
Log.d(TAG, "$ thisDay : " + thisDay);

Mais cela donne "2012 pour l'année 1 pour le mois et 28 pour la date" qui n'est pas la date d'aujourd'hui. Qu'est-ce que j'ai fait de mal?

36
Eranga Peris

Serais-je correct de supposer que cela fonctionne sur un émulateur? Si c'est le cas, définissez correctement la date de l'émulateur et elle devrait être correcte.

De mémoire, ce code devrait faire ce que vous attendez.

21
James
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)
12
Sujewan

Le mois commence à zéro, vous devez donc ajouter 1 au mois donné pour afficher le numéro du mois que nous connaissons.

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + (thisMonth+1));

Cela vous montrera le mois en cours commençant par 1.

7

essaye celui-là..

 Calendar instance = Calendar.getInstance();
 currentMonth = instance.get(Calendar.MONTH);
 currentYear = instance.get(Calendar.YEAR);

 int month=currentMonth+1;
3
Ganesh Giri
import Java.util.Calendar;
import Java.util.TimeZone;
import Android.widget.Toast;

Calendar calendar = Calendar.getInstance(TimeZone.getDefault());

int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH) + 1;
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);

Toast.makeText(this,"Today's Date: " + currentYear + currentMonth + currentDay, Toast.LENGTH_SHORT).show();

"TimeZone" fonctionnera très bien si votre application cible pour Android API 27 plateforme ou supérieure

3
Moeed Ahmed

J'ai essayé votre code et il donne une sortie correcte. Vous devriez essayer de vérifier heure dans votre émulateur/téléphone sur lequel vous essayez ce code.

Selon les documents getInstance, il définit la date et l'heure actuelles par défaut.

2
AAnkit

Essayez d'utiliser:

Date dt = new Date(); 
dt.getYear(); 
dt.getMonth(); 
dt.getDay();

et voyez si vous obtenez le même résultat. Si c'est le cas, la date de votre système n'est probablement pas synchronisée. Vérifiez la documentation de la classe Date pour plus de détails:

2
NinjAndroid

Cela donne l'heure et la date de votre système Android Android donc vérifiez-le d'abord.

1
pyus13