2011-09-20 21 views
29

Desidero denominare nuovi file creati dalla mia applicazione Java con la data/ora corrente.Data e ora correnti come nome file in Java

Ho bisogno di aiuto con questo. Come faccio a nominare i nuovi file creati con il timestamp corrente? Quali classi dovrei includere?

+0

Cosa succede se vengono creati più file contemporaneamente? Si tratta di un [problema XY?] (Http://mywiki.wooledge.org/XyProblem) Cosa stai provando * veramente * a fare? – erickson

risposta

94

Non c'è bisogno di arrivare troppo complicato, provate questo uno di linea:

String fileName = new SimpleDateFormat("yyyyMMddHHmm'.txt'").format(new Date()); 
+3

amico, adoro one-liner :) +1 –

+0

Nice simple line – Janath

+0

aggiungere "secondi" anche se non tutti i file verranno sovrascritti se salvano nello stesso minuto ("aaaaMMggHHmmss.txt" ") – saigopi

1

Date, SimpleDateFormat e qualsiasi altra classe richiesta sul lato I/O delle cose (ci sono molte possibilità).

+0

AIX ha già risposto alla domanda, ma non dimenticare di utilizzare solo i caratteri consentiti su tutti i sistemi operativi che stai servendo. Voglio dire usare SimpleDateFormat. – Kashyap

+0

@aix: la mia applicazione crea nuovi file ogni 30 minuti. Quindi ho bisogno di tempo + data come nome del file. ho provato questo: 'String pattern = "mm/gg/aaaa"; Formato SimpleDateFormat = new SimpleDateFormat (pattern); str = format.format (new Date()); ' poi ho chiamato il mio file come str. ". Txt", ma mi sta dando un errore. [Errore: 49 \ 20 \ 2011.txt (il sistema non riesce a trovare il percorso specificato)]. Inoltre, ho anche bisogno dell'ora corrente. Per favore aiuto. – Nerd

2

Utilizzare SimpleDateFormat come aix ha suggerito di formattare l'ora corrente in una stringa. Si dovrebbe usare un formato che non include / caratteri ecc Vorrei suggerire qualcosa di simile yyyyMMddhhmm

+1

ha funzionato. molte grazie. – Nerd

3

è possibile ottenere il timestamp corrente aggiunto con un'estensione di file nel modo seguente:

String fileName = new Date().getTime() + '.txt'; 
-1

provare questo

String fileSuffix = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());