Начните с рассмотрения
Ваш вопрос не является ни уникальным, ни необычным, и при изучении вашей проблемы будут приняты некоторые меры предосторожности.более высоко награжден.
Ваш основной вопрос на самом деле два вопроса:
- Как разобрать
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
, чтобы лучше понять спецификации форматера