Java:Les dates

De WIKI.minetti.org
Révision de 7 avril 2016 à 16:56 par Jp (discussion | contributions) (Page créée avec « == Date et heure du jour == Date now = new Date(); == Affectation d'une date et heure == Exemple pour le 25/03/2008 21 h 12 min 31 sec: GregorianCalendar calendar = new... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Date et heure du jour

Date now = new Date();

Affectation d'une date et heure

Exemple pour le 25/03/2008 21 h 12 min 31 sec:

GregorianCalendar calendar = new GregorianCalendar(2008, 2, 25, 21, 12, 31);
Date myDate = calendar.getTime();

Attention: Le mois est représenté par un nombre compris entre 0 et 11.

  • Autre façon:
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(GregorianCalendar.YEAR, 2008);
calendar.set(GregorianCalendar.MONTH, 2);
calendar.set(GregorianCalendar.DATE, 25);
calendar.set(GregorianCalendar.HOUR, 21);
calendar.set(GregorianCalendar.MINUTE, 12);
calendar.set(GregorianCalendar.SECOND, 31);
  • Pour vérifier si la date est correcte:
GregorianCalendar calendar = new GregorianCalendar();
calendar.setLenient(false);
calendar.set(2008, 2, 25, 21, 12, 31);
Date myDate = calendar.getTime();

Si la date n'est pas correcte, la méthode getTime va provoquer une exception java.lang.IllegalArgumentException.

Opérations sur les dates et les heures

Soit une date myDate de type Date.

GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(myDate);

// Opérations

Date myNewDate = calendar.getTime();
  • Pour ajouter/retirer des jours:
calendar.add(Calendar.DATE, -7);
  • Pour ajouter/retirer des mois:
calendar.add(Calendar.MONTH, 5);
  • Pour calculer un nombre de jours entre deux dates:
double millis = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis();
double days = millis / 86400000;

Conversion d'une date et heure en chaîne

Soit une date myDate de type Date.

Locale locale = Locale.getDefault();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
String strDate = dateFormat.format(myDate);
  • Pour convertir uniquement la date:
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
  • Pour convertir uniquement les heures:
DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
Format Résultat pour le mardi 4 novembre 2003 20 h 14 min 11 sec
Locale.FRANCE

Locale.FRENCH

Locale.US

Locale.ENGLISH

Locale.UK
DateFormat.SHORT 04/11/03

20:14

11/4/03

8:14 PM

04/11/03

20:14

DateFormat.MEDIUM 4 nov. 2003

20:14:11

Nov 4, 2003

8:14:11 PM

04-Nov-2003

20:14:11

DateFormat.LONG 4 novembre 2003

20:14:11 CET

November 4, 2003

8:14:11 PM CET

04 November 2003

20:14:11 CET

DateFormat.FULL mardi 4 novembre 2003

20 h 14 CET

Tuesday, November 4, 2003

8:14:11 PM CET

Tuesday, 4 November 2003

20:14:11 o'clock CET

  • Autre solution pour les formats particuliers:
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", locale);

Conversion d'une chaîne en date et heure

Soit une date strDate de type String.

Locale locale = Locale.getDefault();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", locale);
Date myDate = sdf.parse(strDate);
  • Pour vérifier si la date est correcte:
...
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", locale);
sdf.setLenient(false);
...

Si la date n'est pas correcte, on aura une exception java.text.ParseException.

Eléments d'une date et heure

Signification Format Calendar Exemple pour le samedi 1er avril 2006 20 h 06 min 09 sec
Locale.FRANCE

Locale.FRENCH

Locale.US

Locale.ENGLISH

Locale.UK

Epoque (BC/AD) GG - ap. J.-C. AD
Epoque (0/1) - ERA 1 1
Année yy - 06 06
yyyy YEAR 2006 2006
Mois M - 4 4
MM - 04 04
MMM - avr. Apr
MMMM - avril April
- MONTH 3 3
Jour du mois d DAY_OF_MONTH

DATE

1 1
dd DAY_OF_MONTH

DATE

01 01
Heure (1-12) h - 8 8
hh - 08 08
Heure du jour (0-23) H HOUR_OF_DAY 20 20
HH HOUR_OF_DAY 20 20
Heure du jour (1-24) k - 20 20
kk - 20 20
Heure (0-11) K HOUR 8 8
KK HOUR 08 08
Minute m MINUTE 6 6
mm MINUTE 06 06
Seconde s SECOND 9 9
ss SECOND 09 09
Milliseconde SSS MILLISECOND 000 000
Jour de la semaine EEE - sam. Sat
EEEE - samedi Saturday
Jour de la semaine (1: dim; 2: lun; ... 7: sam) - DAY_OF_WEEK 7 7
Nombre de jours depuis le début de l'année D DAY_OF_YEAR 91 91
DDD DAY_OF_YEAR 091 091
Jour de la semaine dans le mois (1 à 5) F DAY_OF_WEEK_IN_MONTH 1 1
Numéro de semaine depuis le début de l'année (1 à 52) w WEEK_OF_YEAR 13 13
Numéro de semaine depuis le début du mois (0 à 5) W WEEK_OF_MONTH 0 0
AM/PM a - PM PM
aa - PM PM
AM/PM (0/1) - AM_PM 1 1
Zone horaire z ZONE_OFFSET CEST CEST
zzz ZONE_OFFSET CEST CEST
zzzz ZONE_OFFSET Heure d'été d'Europe centrale Central European Summer Time
- ZONE_OFFSET 3600000 3600000
- DST_OFFSET 3600000 3600000
Texte 'texte' - texte texte
Simple quôte " - ' '

Classes