Как прочитать время и дату из текстового файла в Java 5? - PullRequest
2 голосов
/ 21 июля 2011

Я пытаюсь прочитать данные из простого текстового файла, используя Java 5 SE. Данные представлены в следующих форматах:

10:48 AM
07/21/2011

Я изучил DateFormat и SimpleDateFormat, но не могу найти самый простой способ считывания этих данных в объект Date.

Вот что у меня есть:

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.");
        }
    }
}

Я на правильном пути? Какой лучший способ сделать это?

Ответы [ 4 ]

7 голосов
/ 21 июля 2011

Сначала объедините две строки, чтобы получить что-то вроде этого: String date = "21.07.2011 10:48 AM"

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

Это должно работать, вы можете обратиться к SimpleDateFormat API для дополнительных опций.

2 голосов
/ 21 июля 2011

http://www.kodejava.org/examples/19.html

Измените параметр SimpleDateFormat в соответствии с вашим форматом.

1 голос
/ 21 июля 2011

Используя такую ​​библиотеку, как Гуава вместо написания собственного кода для чтения файлов, вы можете получить что-то вроде:

 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));

(Обработка IOException и ParseException опущены впример выше.)

0 голосов
/ 09 ноября 2017

Попробуйте это,

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);
   }
}

Для получения дополнительной информации см. Ссылки ниже,

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

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

...