Чтение и запись даты и времени в файл CSV

мне нужно иметь возможность хранить текущую дату (год, месяц, день) и время (Час, Мин, сек) в CSV-файл, а затем читать их.

для создания дата Я пытался использовать

Date date = new Date();

построить текущую дату, но когда я

date.toString();

это дает мне очень элегантную строку, описывающую дату и время, которая, похоже, не может храниться в CSV-файле и быть прочитана позже. Итак, как мне написать в CSV-файл в формате, который можно прочитать потом?

кроме того, читая файл CSV, я нашел предложения, такие как

SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date d = df.parse("17/02/2015 01:18:15");

возможно ли это, основываясь на формате предыдущего вывода? И какие исключения я должен поймать с этим использованием?

признателен за любую помощь. Спасибо

2 ответов


чтобы написать дату с форматом даты:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = new Date();
System.out.println(df.format(date));

чтобы проанализировать дату, вы используете тот же формат:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = df.parse("17/02/2015 01:18:15");

в зависимости от вашего варианта использования вы также можете найти целесообразным явно установить часовой пояс (например, в UTC), чтобы получить те же результаты независимо от часового пояса / летнего времени и т. д.

df.setTimeZone(TimeZone.getTimeZone("UTC"));

в качестве альтернативы вы можете использовать базовый long (Миллис с эпохи), что дата построена сверху из...

написать:

Date date = new Date();
System.out.println(date.getTime());

читать:

long dateValue = // As read from the file
Date date = new Date(dateValue);

лично я бы использовать DateFormat, хотя это более многословно и больше работы, так как это сделает содержимое файла читаемым человеком.

Если вам нужна помощь в чтении / записи файлов или обработке исключений, я предлагаю вам задать отдельные вопросы.


вы можете попробовать сохранить данные как Метка Времени Unix (просто длинное число).

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