Come Leggere l’Ora e la Data da File di Testo in Java 5?

Sto cercando di leggere i dati da un file di testo utilizzando Java 5 SE. I dati nei seguenti formati:

10:48 AM
07/21/2011

Ho guardato in DateFormat e SimpleDateFormat, ma io non riesco a capire più straight-forward modo di leggere questi dati in un Data oggetto.

Ecco ciò che ho finora:

import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

class Pim {

    File dataFile;
    BufferedReader br;
    String lineInput;
    Date inputTime;
    Date inputDate;

    public Pim() {

        dataFile = new File("C:\\Data.txt");

        try {

            br = new BufferedReader(new FileReader(dataFile));

            lineInput = br.readLine();
            inputTime = new Date(lineInput);

            lineInput = br.readLine();
            inputDate = new Date(lineInput);            

            br.close();

        } catch (IOException ioe) {

            System.out.println("\n An error with the Data.txt file occured.");
        }
    }
}

Sono sulla strada giusta qui? Qual è il modo migliore per fare questo?

InformationsquelleAutor dvanaria | 2011-07-20



4 Replies
  1. 7

    Primo concat le due linee per avere qualcosa di simile a questo: String data = “07/21/2011 10:48 AM”

    DateFormat formatter = new SimpleDateFormat("MM/dd/yy h:mm a");
    Date date = (Date)formatter.parse(date);

    Questo dovrebbe funzionare, è possibile fare riferimento a SimpleDateFormat API per ulteriori opzioni.

    • In questo senso – ed è più facile combinare la data & tempo questo modo di iniziare con la Data di due istanze. +1
  2. 1

    Utilizzando una libreria come Guava invece di scrivere il proprio file di lettura di codice standard, si potrebbe ottenere via con qualcosa di simile:

     List<String> lines = 
         Files.readLines(new File("C:\\Data.txt"), Charset.forName("UTF-8"));
    
     DateFormat timeFormat = new SimpleDateFormat("hh:mm a");
     Date time = timeFormat.parse(lines.get(0));
    
     DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
     Date date = dateFormat.parse(lines.get(1));

    (Gestione IOException e ParseException omesso nell’esempio di cui sopra.)

  3. 0

    Provare questo,

    import java.util.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    
    public class StringToDateDemo
    {
       public static void main(String[] args) throws ParseException  
       {
          String strDate = "05/23/14 5:10 am";
          SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy h:mm a");
          Date dt = sdf.parse(strDate);
          System.out.println(dt);
       }
    }

    Per maggiori dettagli vedi link qui sotto,

    https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

    http://www.flowerbrackets.com/java-convert-string-date/

    • Mentre corretto per Java 5, come richiesto nella Domanda, gli utenti di versioni successive di Java dovrebbe evitare questi fastidiosi data di classi a tempo come la Peste. Per Java 8 e, successivamente, utilizzare il built-in java.classi a tempo. Per Java 6 e 7 utilizzare il ThreeTen-Backport di progetto.

Lascia un commento