Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2
logo
Sommaire > Généralités > Gestion des dates
        Comment connaître l'heure courante ?
        Comment mettre à jour l'heure courante du système ?
        Comment faire des opérations sur des dates ?
        Comment convertir une date en chaîne ?
        Comment convertir une chaîne en Date ?
        Comment connaître la date de création d'un fichier ?
        Comment forcer le parsing d'une Date à échouer en cas de Date incorrecte ?
        Comment vérifier la validité d'une date ?



Comment connaître l'heure courante ?
auteur : Clément Cunin
Le constructeur par défaut de la classe java.util.Date construit une date initialisée à l'heure courante du système.

On peut également utiliser la méthode System.currentTimeMillis() pour récupérer le timestamp courant.

Si vous utilisez des instances de java.util.Date et de java.sql.Date dans le même programme, il est possible de convertir les deux formats de dates :
java.util.Date uDate = new java.util.Date();
java.sql.Date sDate = new java.sql.Date(System.currentTimeMillis());
 
/*
 * Conversion entre les 2 types de dates
 */
sDate = new java.sql.Date(uDate.getTime());
uDate = new java.util.Date(sDate.getTime());
lien : Comment convertir une date en chaîne ?
lien : Comment mettre à jour l'heure courante du système ?

Comment mettre à jour l'heure courante du système ?
auteur : Clément Cunin
L'API standard ne permet pas de modifier l'heure du système. La seule solution est de passer par une commande externe.

lien : Comment exécuter une application externe ?
lien : Comment connaître l'heure courante ?

Comment faire des opérations sur des dates ?
auteur : Johann Heymes
Tout est prévu, il n'y a qu'à utiliser les classes de Sun tel que :
  • java.util.GregorianCalendar
  • java.util.Calendar
  • java.util.Date

Tout d'abord il nous faut une instance de GregorianCalendar

GregorianCalendar calendar = new java.util.GregorianCalendar(); 
// Initialisé à la date et l'heure courrante. 
calendar.setTime( maDate ); 
// Initialisé avec une instance de Date. 
Voici ensuite quelques exemples d'opération (pour plus d'information lire la doc, évidemment...)
- sur le champs "jour" (7 jours plus tôt) :
calendar.add (Calendar.DATE, -7);
- sur le champs "mois" (5 mois plus tard) :
calendar.add (Calendar.MONTH, 5);
Et pour ce qui est des affichages je vous conseille d'utiliser la solution proposée ici en utilisant la méthode
public Date calendar.getTime ();

Comment convertir une date en chaîne ?
auteur : Clément Cunin
La conversion d'une date en chaîne de caractères est délicate au premier abord. En effet, le format des dates est très différent d'une langue à l'autre. Heureusement, les fonctions d'internationalisation de Java vont faire le travail à notre place...

// IMPORT
import java.util.Locale;
import java.text.DateFormat;

// 1. Choix de la langue
Locale locale = Locale.getDefault();

/** 2. Construction du DateFormat en choisiant un format :
 * SHORT = 01/01/2002
 * FULL = lundi 1 janvier 2002
 */
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);

// 3. Affichage
System.out.println(dateFormat.format(maDate));
Si vous souhaitez utiliser un format de sortie plus exotique, vous pouvez accéder directement à la classe java.text.SimpleDateFormat.

DateFormat dateFormat = new SimpleDateFormat("hh'h'mm dd-MM-yy");
//résultat : "23h59 31-12-2000"
lien : Comment convertir une date en chaîne ?

Comment convertir une chaîne en Date ?
auteur : Grégory Danelon
Pour convertir une chaine en date, il faut connaître le format de la date. Par défaut, une seule classe dans l'API gère les formats de date : java.text.SimpleDateFormat. On utilise le parser de date pour effectuer la conversion. Voici une méthode générique :

public static Date stringToDate(String sDate, String sFormat) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
        return sdf.parse(sDate);
} 
Le parser déclenche l'exception ParseException quand la chaine ne respecte pas le format. La documentation sur java.text.SimpleDateFormat décrit le format d'une date, et des lettres à utiliser pour caractériser le jour, le mois, ... etc.
Cette méthode est valable à partir du JDK 1.1
Un exemple d'utilisation est fourni en téléchargement.

lien : Comment convertir une date en chaîne ?
téléchargement : Exemple d'utilisation.

Comment connaître la date de création d'un fichier ?
auteur : L'équipe Java
Date de création :
Aucune solution n'est disponible pour connaître la date de création d'un fichier. Certains systèmes comme Linux ne fournissant pas cette information, aucun solution portable n'est possible.

Date de la dernière modification :
Là, en revanche, aucun problème, la méthode lastModified() de la classe java.io.File est disponible.
long dateModification = monFichier.lastModified();
Toutefois, le long retourné par la méthode lastModified() peut dépendre du système d'exploitation et donc ne pas être toujours extrêmement précise.


Comment forcer le parsing d'une Date à échouer en cas de Date incorrecte ?
auteur : bulbo
Par défaut la classe DateFormat essaie d'interpréter une date incorrecte. Ainsi le 31 février 2000 retournera un objet Date valide.

Date d = new SimpleDateFormat("dd/MM/yyyy").parse("31/02/2000");
System.out.println("Date: " + d);
Ce code retourne la date suivante: Thu Mar 02 00:00:00 CET 2000

Pour forcer la classe SimpleDateFormat à retourner une erreur, il faut utiliser la méthode setLenient(false).

Le code suivant retournera une exception:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
System.out.println("Date: " + sdf.parse("31/02/2000"));
java.text.ParseException: Unparseable date: "31/02/2000"


Comment vérifier la validité d'une date ?
auteur : Morpheus2144
Il faut utiliser la propriété Lenient de l'objet Calendar, cela forcera le parsing de la date à échouer si la date est invalide.

Les messages d'exceptions indique même d'ou vient l'erreur ("MONTH", "DAY_OF_MONTH").

On peut donc utiliser ce problème en parsant la date et en voyant s'il y a une erreur :

public boolean estValide(int annee, int mois, int jour){
	Calendar c = Calendar.getInstance();
	c.setLenient(false);
	c.set(annee,mois,jour);        
	try{
	  c.getTime();  
	}
	catch(IllegalArgumentException iAE){
	  return false;
	}
	
	return true;
}
Remarques :

  • Ne pas oublier que pour un objet Calendar les mois commence à 0 et les jours à 1
  • L'exception est relevée lors du getTime() et non pas du set(), donc vous pourrez créer un calendar non valide mais pas l'utiliser
lien : Comment forcer le parsing d'une Date à échouer en cas de Date incorrecte ?


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les codes sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Pour le reste, ce document constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Ce document issu de http://www.developpez.com est soumis à deux licences, en fonction des contributeurs : - Les contributions de Clément Cunin et Johann Heymes sont soumises aux termes de la la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies des contributions de Clément Cunin et Johann Heymes tant que cette note apparaît clairement : "Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement". - Pour ce qui est des autres contributions : Copyright © 2004 Developpez LLC : Tous droits réservés Developpez LLC. Aucune reproduction, ne peut en être faite sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Avez-vous inventé des termes que seuls vous et votre équipe comprenez ? Drôles ou techniques, expliquez-les nous Commentaires 93
  2. Mise à jour du Cours "Développons en Java" par Jean-Michel Doudoux, nouveaux chapitres sur Terracotta et les relations dans Hibernate Commentaires 39
  3. Brevets Java : Google répond aux accusations d'Oracle et considère ses poursuites « sans fondements » Commentaires 82
  4. La vidéo de la semaine de Kat : Quand Lady Gaga devient Lady Java Commentaires 6
  5. Android et Java violemment critiqués par le développeur de Firebug et de Facebook iPhone, l'OS serait « bâclé » et ses outils « affreux » Commentaires 24
  6. Quels sont les meilleurs outils pour le développement d'application ? Faites-nous part de vos avis. Commentaires 8
  7. Le développement open-source souffre-t-il d'une surabondance de choix ? Un expert en Ruby nous donne son avis Commentaires 14
  8. Google n'ira pas à JavaOne et qualifie la procédure juridique d'Oracle de procès contre l'open-source Commentaires 35
Page suivante
  1. Le pire bout de code que vous ayez vu : Qui l'a fait ? Pourquoi ? Pourquoi était-il si horrible ? Commentaires 427
  2. Fusion Oracle - Sun : le créateur de MySQL ne renonce pas et conteste le rachat devant la Cour Européenne de Justice de Luxembourg Commentaires 375
  3. Apple expulse Flash, Java et .NET de l'iPhone en modifiant ses conditions d'utilisation, et provoque des réactions d'une rare violence Commentaires 632
  4. Eclipse 3.5.2 : Téléchargez la version de maintenance SR2 de la plateforme de développement Galileo Commentaires 98
  5. "Le Nexus One est un winner" déclare Linus Torvalds, Google baisse ses frais de résiliation et propose une hotline pour son smartphone Commentaires 198
  6. Quelle police de caractères préférez-vous pour développer ? Est-elle dans notre Top 10 ? Commentaires 97
  7. Java redevient le langage de programmation le plus populaire, d'après l'index de juin de TIOBE Software Commentaires 240
  8. Les programmeurs savent-ils encore écrire un code avec un éditeur de texte ? Non, regrettent des développeurs "stars" de Microsoft Commentaires 208
Page suivante

Ressources

Les forums Java

Communauté

FAQS ( 1349 réponses )

Contacts

Pour rejoindre la rédaction, émettre une suggestion ou proposer un tutoriel : contactez nous via le forum.
Plus d'infos sur la page équipe Java.

Vos questions techniques : forum d'entraide Java - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.