Java: как анализировать время в формате «ГГГГММДДЧЧММССТТТ»?

Я пытаюсь прочитать строки файла csv. Каждая строка представляет историю журнала с отметкой времени в столбце 1. Отметка времени всегда имеет форму YYYYMMDDHHMMSSTTT (с точностью до миллисекунды).

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

Итак, как я должен анализировать время в формате YYYYMMDDHHMMSSTTT, т.е. 20180301093559127? Спасибо.


person user1769197    schedule 16.04.2018    source источник
comment
Просто будьте осторожны, что MM != мм и т. д.   -  person achAmháin    schedule 16.04.2018
comment
К чему привели ваши поиски и исследования? Конечно, вы можете найти некоторую информацию, как о типе, который нужно использовать, так и о том, как анализировать дату и время. Очевидным типом Java для использования будет LocalDateTime, однако, если вы знаете часовой пояс, могут быть преимущества использования ZonedDateTime.   -  person Ole V.V.    schedule 17.04.2018


Ответы (1)


Вы можете сделать что-то подобное в качестве обходного пути. Хотя это и не отличное решение, но для вашего случая подойдет.

Предположим, ваша дата: String d="20180416235441095";

    String year=d.substring(0,4);
    String mon=d.substring(4,6);
    String day=d.substring(6,8);
    String hour=d.substring(8,10);
    String min=d.substring(10,12);
    String sec=d.substring(12,14);
    String mill=d.substring(14,17);

    String formattedDate=year+"-"+mon+"-"+day+" "+hour+":"+min+":"+sec+"."+mill;
    System.out.println("Formatted Date is : "+ formattedDate);
    LocalDateTime datetime = LocalDateTime.parse(formattedDate, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
    System.out.println("Final Date is : "+datetime);

Вывод выглядит так: Форматированная дата: 2018-04-16 23:54:41.095 Окончательная дата: 2018-04-16T23:54:41.095

person Tamanna Bhasin    schedule 16.04.2018
comment
Это не сработает, поскольку формат, который вы получаете, не является стандартным форматом LocalDateTime, и именно здесь вам нужно отформатировать данные csv в формате, который может быть проанализирован этим. Надеюсь, поможет! - person Tamanna Bhasin; 16.04.2018