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... »)
Sommaire
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 | " | - | ' | ' |