Comment obtenir le mois sous forme d'entier à partir d'un objet Date (Java.util.Date
)?
Vous pouvez également utiliser le package Java.time dans Java 8 et convertir votre objet Java.util.Date
en un objet Java.time.LocalDate
, puis simplement utiliser la méthode getMonthValue()
.
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int month = localDate.getMonthValue();
Notez que les valeurs mensuelles sont ici données de 1 à 12 contrairement à cal.get(Calendar.MONTH)
dans la réponse de adarshr qui donne les valeurs de 0 à 11.
Mais comme le dit Basil Bourque dans les commentaires, la méthode recommandée consiste à obtenir un objet Month
enum avec la méthode LocalDate::getMonth
.
Java.util.Date date= new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
Si vous utilisez Java 8 date api, vous pouvez l'obtenir directement sur une ligne!
LocalDate today = LocalDate.now();
int month = today.getMonthValue();
Si vous ne pouvez pas utiliser le temps Joda et que vous vivez toujours dans le monde sombre :) (Java 5 ou inférieur), vous pourrez en profiter:
Remarque: Assurez-vous que votre date est déjà faite par le format: jj/mm/aaaa
/**
Make an int Month from a date
*/
public static int getMonthInt(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
return Integer.parseInt(dateFormat.format(date));
}
/**
Make an int Year from a date
*/
public static int getYearInt(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");
return Integer.parseInt(dateFormat.format(date));
}
Date mDate = new Date(System.currentTimeMillis());
mDate.getMonth() + 1
La valeur renvoyée commence à 0, vous devez donc en ajouter un au résultat.