e-Babillard - plateforme pédagogique interactive

Ressources pédagogiques communes concernant... => JAVA => Sujet démarré par: jpdelx sur 05 Décembre 2009 à 20:40:44



Titre: [JAVA] Comparer 2 dates
Posté par: jpdelx sur 05 Décembre 2009 à 20:40:44
Bonjour
Citation:
...
Ce que je veux faire donc c'est récupérer une Chaine contenant une date,
la convertir au format Date pour pouvoir ensuite faire des comparaisons
avec la date du jour (date1.before(date2) etc...)
...


Pour les dates voici les références que j'utilise :
http://www.java2s.com/Code/JavaAPI/java.text/DateFormatparseStringdateString.htm

Par exemple :

Code:
// MainClass.java

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MainClass {

  public static void main(String[] a) throws Exception{

    DateFormat df = new SimpleDateFormat ("yyyy-MM-dd");

    Date d1 = df.parse("2001-01-01");

    Date d2 = df.parse("2000-01-01");

    String relation="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    if (d1.equals(d2))
      relation = "the same date as";
    else if (d1.before(d2))
      relation = "before";
    else if (d1.after(d2))
      relation = "after";
    System.out.println(d1 + " is " + relation + ' ' + d2);
  }
}

@lpf


Titre: [JAVA] Comparer 2 dates
Posté par: jpdelx sur 06 Décembre 2009 à 07:49:36
Bonjour

Autre lien -> http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

Pour un bon fonctionnement du format "EEE MMM dd HH:mm:ss zzz yyyy", il faut préciser
une date Locale en US !
Citation de: www.laltruiste.com
La classe Locale représente une région culturelle, politique ou géographique.
Une opération qui requiert un objet Locale pour exécuter sa tâche est appelé locale-sensitive
et l'utilise pour adapter l'information pour l'utilisateur. Par exemple, l'affichage d'un nombre est
une opération locale-sensitive puisqu'il devrait être formaté selon l'environnement géographique
et culturel de l'utilisateur.

-> http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html
-> http://java.sun.com/developer/technicalArticles/J2SE/locale/

(http://jpdelx2009.free.fr/JAVA_FormatDate_token.png)

Exemple :
Code:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

import java.util.Locale;

public class DateFormatExample4 {

    public static void main(String[] args) {
        // Make a new Date object. It will be initialized to the
        // current time.
        Date now = new Date();

        // Print the result of toString()
        String dateString = now.toString();
        System.out.println(" 1. " + dateString);

        // Make a SimpleDateFormat for toString()'s output. This
        // has short (text) date, a space, short (text) month, a space,
        // 2-digit date, a space, hour (0-23), minute, second, a space,
        // short timezone, a final space, and a long year.
        SimpleDateFormat format =
            new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);

        // See if we can parse the output of Date.toString()
        try {
            Date parsed = format.parse(dateString);
            System.out.println(" 2. " + parsed.toString());
        }
        catch(ParseException pe) {
            System.out.println("ERROR: Cannot parse \"" + dateString + "\"");
        }

        // Print the result of formatting the now Date to see if the result
        // is the same as the output of toString()
        System.out.println(" 3. " + format.format(now));
    }
}

@lpf


e-Babillard - plateforme pédagogique interactive | Propulsé par SMF 1.0.6 modifié par jpdelx.
© 2001-2005, Lewis Media. Tous droits réservés.