Problème dans les Date avec SimpleDateFormat

Résolu
Luc1an0 Messages postés 9 Date d'inscription dimanche 20 mars 2005 Statut Membre Dernière intervention 10 janvier 2007 - 10 janv. 2007 à 09:44
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 10 janv. 2007 à 18:19
Bonjour à tous,
pour vous situer le contexte, j'ai une application principale qui créer des dossiers chaque jour avec la date de ce meme jour. Une fois ce dossier crée, et les traitements effectués, je fait un :
monDossier.setLastModified(new Date()); pour etre sur de fixer la date du jour comme derniere date d'accès.

Je voudrais faire maintenant une fonction qui retrouve le premier dossier (la date la plus ancienne).

Je me suis fait une fonction qui me retourne une date au format "jj-mm-aaaa" avec SimpleDateFormat :
static String timeToString(long time)
    {
        Date dt = new Date(time);
        SimpleDateFormat form = new SimpleDateFormat("hh-MM-yyyy");
        String str = form.format(dt);
        return str;
    }
J'ai testé cette fonction et elle me renvoit des valeurs exactes.

Enfin voici une boucle qui liste un répertoire, et qui stocke dans un tableau de long, les dates de modification (pour faire un Arrays.sort(monTableau) derriere)

String homedir = "/home/backup/Client1/";
        File f = new File(homedir);
        File[] subfolders = f.listFiles();
        long[] dates = new long[subfolders.length];
        File tmpfile;
        for (int i=0;i<=subfolders.length-1;i++)
        {
            dates[i] = subfolders[i].lastModified();
            System.out.print(new Date(dates[i]));
            System.out.print("  ");
            System.out.println(timeToString(dates[i]));
        }
voici le résultat :
Wed Jan 10 00:11:36 CET 2007  12-01-2007
Thu Jan 11 00:01:07 CET 2007  12-01-2007
Fri Jan 12 00:00:37 CET 2007  12-01-2007
Sat Jan 13 00:00:30 CET 2007  12-01-2007
Sun Jan 14 00:00:52 CET 2007  12-01-2007
Mon Jan 15 00:00:29 CET 2007  12-01-2007
Tue Jan 16 00:00:38 CET 2007  12-01-2007
Wed Jan 17 00:01:03 CET 2007  12-01-2007
Thu Jan 18 00:00:35 CET 2007  12-01-2007
Fri Jan 19 00:00:07 CET 2007  12-01-2007
Sat Jan 20 00:00:58 CET 2007  12-01-2007
Sun Jan 21 00:00:42 CET 2007  12-01-2007
Mon Jan 22 00:00:48 CET 2007  12-01-2007
Tue Jan 23 00:00:22 CET 2007  12-01-2007

(Si vous trouvez que les dates ont un peu d'avance c'est normal, j'ai changé la date de façon à reproduire des conditions réeles d'exécution)

2 réponses

Luc1an0 Messages postés 9 Date d'inscription dimanche 20 mars 2005 Statut Membre Dernière intervention 10 janvier 2007
10 janv. 2007 à 10:07
J'ai résolu mon problème :
j'utilise cette commande sous Linux : ls -1tr /mon/Dossier/Racine qui va me trier les dossiers par ordre inverse de date de modification (premiere ligne = date la plus ancienne)

Je l'exécute avec un process, je récupère seulement la premiere ligne.

Voilou :)

Le bout de code si ca intéresse quelqu'un :

static String firstFolder(String name)
    {
        Runtime rt = Runtime.getRuntime();
        try
        {
            Process p = rt.exec("ls -1tr /home/backup/Client1/");
            InputStreamReader read = new InputStreamReader(p.getInputStream());
            BufferedReader br = new BufferedReader(read);
            String str = br.readLine();
            p.destroy();
        }
        catch (Exception e) { }
        return str;
    }
(le chemin du dossier racine est écrit en dur ici....)
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
10 janv. 2007 à 18:19
Salut,

sinon en java pure tu pouvais faire un tri de tes dates

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous