web-dev-qa-db-fra.com

Quelle est la bonne façon de créer une date en Java?

Je suis dérouté par l'API Java de la classe Date. Tout semble être déconseillé et des liens vers la classe Calendar. J'ai donc commencé à utiliser les objets Calendrier pour faire ce que j'aurais aimé faire avec une date, mais intuitivement, cela me gêne d'utiliser un objet Calendrier alors que tout ce que je veux faire, c'est créer et comparer deux dates.

Y a-t-il un moyen simple de faire ça? Pour l'instant je fais

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, hour, minute, second);
Date date = cal.getTime(); // get back a Date object
85
seb

Vous pouvez utiliser SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date d = sdf.parse("21/12/2012");

Mais je ne sais pas si cela devrait être considéré plus juste que d'utiliser le calendrier ...

104
Maxx

L'excellente bibliothèque joda-time est presque toujours un meilleur choix que les classes Date ou Calendar de Java. Voici quelques exemples:

DateTime aDate = new DateTime(year, month, day, hour, minute, second);
DateTime anotherDate = new DateTime(anotherYear, anotherMonth, anotherDay, ...);
if (aDate.isAfter(anotherDate)) {...}
DateTime yearFromADate = aDate.plusYears(1);
35
Chris Knight

Vous pouvez essayer joda-time .

15
Sergii Zagriichuk