как конфертировать из 10-Jun-02 01.57.07.848594000 PM в yyyy-MM-dd-HH24.MI.SS.FF6 в java - PullRequest
0 голосов
/ 03 октября 2018

как конвертировать из 10-ИЮН-02 01.57.07.848594000 PM в yyyy-MM-dd-HH24.MI.SS.FF6 в java

1 Ответ

0 голосов
/ 03 октября 2018

Начните с рассмотрения

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

Ваш основной вопрос на самом деле два вопроса:

  • Как разобрать String для объекта даты / времени
  • Как отформатироватьобъект даты / времени

Я ценю, что в наше время есть как минимум 3 различных метода, которые могут помочь вам решить эти проблемы.Тем не менее, API даты / времени, представленный в Java 8, должен быть вашим предпочтительным подходом.

Сказав это, вы, вероятно, будете иметь два основных камня преткновения для того, чтобы заставить что-то работать.

Оба относятся кнеобычный случай ввода (JUN и pm).

Java 8 представил класс DateTimeFormatterBuilder, который можно использовать для решения этой проблемы.

DateTimeFormatter dtf = new DateTimeFormatterBuilder()
        .parseCaseInsensitive()
        .appendPattern("dd-MMM-yy hh.mm.ss.SSSSSSSSS a")
        .toFormatter(Locale.ENGLISH);

LocalDateTime ldt = LocalDateTime.parse("10-JUN-02 01.57.07.848594000 pm", dtf);

Это будетпредоставим вам представление даты / времени для вашего ввода.

Затем вам просто понадобится еще один DateTimeFormatter для форматирования вывода по желанию ...

DateTimeFormatter output = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS", Locale.ENGLISH);
System.out.println(output.format(ldt));

, который выводит ...

2002-06-10-13.57.07.848594

Убедитесь, что вы прочитали JavaDocs для DateTimeFormatter, чтобы лучше понять спецификации форматера

...