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

Java Discussion :

SimpleDateFormat ne fonctionne pas complètement


Sujet :

Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut SimpleDateFormat ne fonctionne pas complètement
    Bonjour,

    je tente d’utiliser Oracle SimpleDateFormat, mais j’ai remarqué qu’il ne fonctionnait pas pour tous les cas.

    En fait pour un cas uniquement.

    J’ai la date suivante : «20/Jul/2015:09:45:31 +0000» et le SimpleDateFormat : «dd/MMM/yyyy:kk:mm:ss Z». Le défaut de fonctionnement se fait au niveau du mois ; impossible de faire apparaître le trois jours. J’ai effectué les test unitaire aboutissant aussi à cette conclusion.

    J’aimerais également savoir comment on affiche le résultat obtenu car, à la fin, je n’ai que un «java.text.SimpleDateFormat@5a».

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    on comprend rien quand tu parles.

    - tu "as une date", tu "as un SimpleDateFormat".... => Parsing ou formatting ? Tu veux transformer une String en Date ou une Date en String ?
    - le "défaut de fonctionnement se fait au niveau du mois ; impossible de faire apparaître le trois jours" => Ah bah oui, le trois jours, bien sûr. C'est important, ça, le trois jours . Bon, c'est quoi, qui va pas ?
    - "J’ai effectué les test unitaire aboutissant aussi à cette conclusion." => Lesquels ? Il n'y a pas, à ma connaissance, de célèbres tests unitaires aboutissant à cette conclusion.
    - "J’aimerais également savoir comment on affiche le résultat obtenu" => Le résultat obtenu en faisant quoi ? Quand on utilise un SimpleDateFormat, ça produit soit une Date (parsing) soit une String (formatting.) Dans les deux cas, il faut afficher ça, pas le SimpleDateFormat.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Oui, excuse-moi, j’ai pas mal fait d’erreurs… :/

    Alors je m’explique :

    J’aimerai «parser» une date contenue dans un texte (dans lequel il y a beaucoup d’autres choses). Pour l’instant, j’ai créé une variable String dans laquelle j’ai écrit une date 20/Jul/2015:09:45:31 +0000 et j’aimerais utiliser ce modèle dd/MMM/yyyy:kk:mm:ss Z pour pouvoir récupérer la date que j’ai écrite plus haut (uniquement pour voir si ça fonctionne). J’ai deux problèmes. D’une part, je n’arrive pas à afficher la date récupérée dans la console (je ne sais pas quelle variable donner au System.out.print) et d’une autre part, le MMM ne fonctionne pas (je ne peux pas récupérer le mois de trois lettres).

    Merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour parser avec un SimpleDateFormat, on appelle la méthode parse, en lui passant un String en argument, et en récupérant un Date en résultat...

    Ensuite, le SimpleDateFormat parse avec la Locale qu'on lui indique, ou celle sélectionné par défaut. La forme de format sur 3 positions n'est pas un format sur 3 positions, mais un format abrégé :
    Text: For formatting, if the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available
    . Il n'est nullement indiqué que c'est forcément sur 3 caractères.

    Jul correspond bien à un moi de juilletabrégé mais en anglais (donc avec une locale dans la langue est l'anglais), ou peut-être d'autres langues, je ne sais pas, mais pas en français en tout cas. Le problème en plus c'est qui les mois de juin et juillet ont la même abréviation sur 3 positions, du coup, le SimpleDateFormat ne pourrait pas faire la différence : en conséquence, le formatage de juin donne "juin", et le le formattage de juillet, "juil.". Et le parsing fonctionne à partir des valeurs obtenues lors du formatage (casse mise à part).

    A noter, par ailleurs, que kk est une heure allant de 1 à 25, pas de 0 à 24, comme il habituellement l'usage en France.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    D’accord, je comprends mieux.

    Merci (à vous deux) pour ces explication :p

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

Discussions similaires

  1. Requête AJOUT qui ne fonctionne pas complètement
    Par cgteddy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/07/2013, 21h53
  2. [GWT-Widget] SimpleDateFormat.parse() ne fonctionne pas
    Par touille dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 27/05/2010, 18h05
  3. Réponses: 36
    Dernier message: 19/02/2010, 16h35
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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