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

Collection et Stream Java Discussion :

traitement des dates avec java


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 38
    Points : 44
    Points
    44
    Par défaut traitement des dates avec java
    bonjour à tous,
    voici mon problème :
    je récupère la date d'un fichier, java me retourne une date sous sa forme traditionnelle à savoir : "Thu Oct 02 18:22:35 CEST 2008", comment convertir cette chaine en date ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Points : 68
    Points
    68
    Par défaut
    A défaut de trouver une classe utilitaire toute faite qui te permet de récupérer une date sous une un format qui va bien, tu pourait utiliser les méthodes de la classe telles que ... pour fabriquer le résultat qui te convient.

    Je te conseil plutôt de te faire une petite classe avec des méthodes statiques. Ca pourra te resservir ne autre fois.

    Un lien qui pourra te servir : http://java.sun.com/javase/6/docs/api/.

    Dans la colonne de gauche, en haut, cherche java.util, clique dessus puis juste dans la colonne en dessous, cherche Date...

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Une petite recherche sur le forum t'aurais donné la réponse depuis longtemps ...

    -> Comment convertir une chaîne en Date ?

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Pour obtenir une String au format qui te convient, il faut utiliser la classe SimpleDateFormat. (FAQ : Comment convertir une date en chaîne ?)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 38
    Points : 44
    Points
    44
    Par défaut code du forum inaproprié à priori
    effectivement, le code de conversion d'une chaine "date sous forme Java" retourne une erreur d'exécution ?
    finalement comment interpréter cette fameuse chaine
    "Thu Oct 02 00:00:00 CEST 2008" à quoi correspond ce CEST, la chaine serait
    "EEE MMM dd HH:mm:ss ???? YYYY" ?
    réponses à suivre
    @+

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    CEST, pour Central European Summer Time est le nom du fuseau horaire (timezone) calé à plus 2 heure par rapport au Temps Universel Coordonnée (UTC).

    Il est utilisé en France pour l'heure d'été.

    Sinon il faut utiliser le pattern suivant :

    "EEE MMM dd HH:mm:ss z yyyy"

    Le z désigne la timezone.

    Attention a bien utiliser un SimpleDateFormat initialisé avec la Locale US pour pouvoir parser correctement cette date.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 38
    Points : 44
    Points
    44
    Par défaut la solution que j'ai trouvé
    merci à tous,
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.*;
    import java.util.Date;
     
    public class Fichiers
    {
         static public void main(String args[]) throws Exception
     
         {
     
    File di   = new File("d:/fichiers/in");
    File fl[] = di.listFiles();
    int j;
    int count=0;
    String str="";
    String totalinfo="";
     
    SimpleDateFormat dateStandard = new SimpleDateFormat("dd/MM/yy"); // a la française
    Date dateJour = new Date();
    Date dateRef = dateStandard.parse("01/01/70");
     
    FileOutputStream file2 = new FileOutputStream("d:/fichiers/ETATIN.txt"); // RAZ du fichier
    file2.close();
     
    // lecture du répertoire
    for (j=0; j < fl.length; j++)
    {
      String filename = fl[j].getName().toString();
      long datefile = fl[j].lastModified();
      long  dateFile2 = datefile/1000/3600/24; // nombre de jours depuis le 1/1/1970
      int dateFile3 = (int) (long) dateFile2; // conversion
      String dateEnvoi = (deplacerDate(dateRef,dateFile3).toString()); // recup en texte sous forme US
      Date dateEng = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US).parse(dateEnvoi); // la fameuse pattern
      String dateFichier = new SimpleDateFormat("dd/MM/yy", Locale.FRANCE).format(dateEng); // transforme format french
     
      totalinfo = filename;
      FileOutputStream file = new FileOutputStream("d:/fichiers/ETATIN.txt",true); //ouverture en MAJ
      PrintStream printtofile = new PrintStream(file);
      printtofile.println(totalinfo+ "  "+dateStandard.format(dateJour)+" "+dateFichier);
      printtofile.close();
      file.close();
    }
     
    }
     public static Date stringToDate(String sDate, String sFormat) throws Exception {
            SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
            return sdf.parse(sDate);
    }  
      public static Date deplacerDate(Date dateDepartRef,int nb_jour_deplacer)
      { // donne la date à partir du nombre de jour depuis le 01/01/1970
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(dateDepartRef);
        Calendar calendar2 = Calendar.getInstance();
        calendar2.clear();
        calendar2.set(calendar.get(calendar.YEAR), calendar.get(calendar.MONTH),calendar.get(calendar.DAY_OF_MONTH)+nb_jour_deplacer);
        return calendar2.getTime();
      }
    }

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

Discussions similaires

  1. Traitement des listes avec GNU Prolog pour Java
    Par JeuneJavaiste dans le forum Prolog
    Réponses: 1
    Dernier message: 07/09/2011, 13h27
  2. je dois implémenter des programmes en traitement d'image avec java.
    Par inès83 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 22/02/2008, 12h55
  3. traitements des signaux en Java
    Par Zorgz dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 11/10/2006, 17h15
  4. Exécuter un traitement à des dates précises
    Par Commodore dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 08/08/2006, 09h42
  5. Traitement des dates différent suivant le serveur
    Par le lynx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/09/2005, 11h14

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