IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Struts 1.3.8] Expression régulière pour date


Sujet :

Struts 1 Java

  1. #1
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut [Struts 1.3.8] Expression régulière pour date
    Bonjour,

    Je ne connais pas beaucoup les expressions régulières et comment les faire, alors j'aimerais savoir si quelqu'un sait comment faire pour vérifier ce format de date en expression régulière : (MM: DD: YYYY: HH: MN: SS)

    Merci beaucoup.

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    A mon avis utiliser une expression régulière n'est pas le plus simple ... Jette un oeil à SimpleDateFormat ...

  3. #3
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Une petit regex comme ceci te conviendrai t il

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [(](0[1-9]|1[012])(: )(0[1-9]|[12]\d|3[01])\2(19|20)\d\d\2([01]\d|2[0-3])\2([0-5]\d)\2([0-5]\d)[)]
    Ceci permet les chaines du type:
    (06: 14: 1985: 23: 12: 30)

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Le problème de la regexp c'est que tu vas avoir des 31 février sans pb
    Alors que SimpleDateFormat gère très bien tout ca ...

  5. #5
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Merci pour la regexp

    Citation Envoyé par chtig
    Le problème de la regexp c'est que tu vas avoir des 31 février sans pb
    Alors que SimpleDateFormat gère très bien tout ca ...
    Comment utilise t-on le SimpleDateFormat?
    Merci de votre aide

  6. #6
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Moi j'ai donné l'expression régulière associé a la demande, il etait pas dit qu'il fallait bloquer les 31 février

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateFormat dateFormat = new SimpleDateFormat("(MM: dd: yyyy: HH: mm: ss)");

  7. #7
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par zorm
    Moi j'ai donné l'expression régulière associé a la demande, il etait pas dit qu'il fallait bloquer les 31 février

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateFormat dateFormat = new SimpleDateFormat("(MM: dd: yyyy: HH: mm: ss)");
    Mais comment je fais pour comparer la valeur saisie avec ce format?

  8. #8
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh ... en regardant la javadoc ou en faisant une recherche sur ce forum

  9. #9
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    J'ai mis cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    try{
     
       SimpleDateFormat sdf= new SimpleDateFormat("(MM:dd:yyyy: HH:mm:ss)");
       Date ladate = sdf.parse(value); //value est la valeur saisie par l'utilisateur
     
       if(ladate == null){
       errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil"));
       saveErrors(request, errors);
       }
    }
    catch(Exception e){
        errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil"));
        saveErrors(request, errors);
    }
    Est-ce comment ca que je dois faire?
    Ca bloque à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Date ladate = sdf.parse(value);
    Il n'arrive pas à parser la valeur même si je met une date valide, pourquoi?

  10. #10
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    1) Les catch Exception c'est moche
    2) Tu as vu où que la date renvoyée pouvait être nulle dans la javadoc ?
    3) Jette un oeil à setLenient(...)
    4) voir l'utilisation de ParsePosition

    Les points 2,3 et 4 sont dans la javadoc, le point 1 dans n'importe quel tuto Java ...

  11. #11
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par chtig
    1) Les catch Exception c'est moche
    2) Tu as vu où que la date renvoyée pouvait être nulle dans la javadoc ?
    3) Jette un oeil à setLenient(...)
    4) voir l'utilisation de ParsePosition

    Les points 2,3 et 4 sont dans la javadoc, le point 1 dans n'importe quel tuto Java ...
    Je n'arrive pas trop à utiliser la javaDoc.
    Pour le point 2, j'ai cherché sur le forum des topics avec SimpleDateFormat et j'avais vu que quelqu'un l'utilisait mais je ne savais pas si c'était bon ou pas.

    Je vais essayer de voir la javaDoc si je comprends comment faire.

  12. #12
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    La javadoc c'est vraiment le truc le plus important à mon sens en Java ... Bien comprendre comment elle est faite etc, c'est super super important !

    Regarde la doc de la méthode parse, on t'explique pas mal normalement

  13. #13
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par chtig
    La javadoc c'est vraiment le truc le plus important à mon sens en Java ... Bien comprendre comment elle est faite etc, c'est super super important !

    Regarde la doc de la méthode parse, on t'explique pas mal normalement
    Je connais la javaDoc et je l'ai déjà regardé plusieurs fois mais elle ne m'aide pas à trouver mes solutions ou très rarement.
    J'ai regardé et je ne suis pas plus avancé que tout à l'heure. Je continue des chercher des infos.

  14. #14
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    J'ai trouvé, j'ai écrit ca et ca fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SimpleDateFormat sdf= new SimpleDateFormat("MM:dd:yyyy: HH:mm:ss");
    Date ladate = sdf.parse(value);
    String parseDate = sdf.format(ladate);
     
    if(!parseDate.equals(value)){
    errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil"));
    saveErrors(request, errors);
    }

  15. #15
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    N'oublie pas la gestion des exceptions ...

  16. #16
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par chtig
    N'oublie pas la gestion des exceptions ...
    Oui je l'ai gérer mais je n'ai mis que le code correspondant à la vérification de la date.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. [RegEx] Simple expression régulière pour ereg_replace
    Par aurapp dans le forum Langage
    Réponses: 6
    Dernier message: 12/03/2006, 12h34
  3. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  4. [RegEx] expression régulière et date
    Par r-zo dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2005, 13h27
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo