LocalDateTime.parse(
"May 23 2011 12:20:00" ,
DateTimeFormatter.ofPattern( "MMM d uuuu HH:mm:ss" , Locale.US )
)
Принимаемый ответ Андреаса Крюгера верен. Вы должны указать Locale
, чтобы определить человеческий язык, используемый при переводе названия месяца.
Современный подход позволяет избежать проблемных старых классов времени и времени, вместо того чтобы использовать их замены, классы java.time.
String input = "May 23 2011 12:20:00" ;
Определите шаблон форматирования для соответствия входу с помощью класса DateTimeFormatter
.
Locale
определяет (a) человеческий язык для перевода имени дня, названия месяца и т. д. и (б) культурных норм, решающих вопросы сокращения, капитализации, пунктуации, разделителей и т. д.
Locale locale = Locale.US ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MMM d uuuu HH:mm:ss" , locale );
Ваш ввод отсутствует индикация часового пояса или смещение-от-UTC. Итак, мы анализируем как LocalDateTime
.
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
ldt.toString (): 2011-05-23T12: 20: 00
О java.time
Рамка java.time встроена в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые классы времени legacy , такие как
java.util.Date
,Calendar
и & amp;SimpleDateFormat
.Проект Joda-Time , теперь в режиме обслуживания , советует перейти на java.time .
Чтобы узнать больше, см. учебное пособие Oracle . И поиск Stack Overflow для многих примеров и объяснений. Спецификация JSR 310 .
Где получить классы java.time?
- Java SE 8 , Java SE 9 , а затем и встроенный. Часть стандартного Java API с интегрированной реализацией. Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и Java SE 7 Большая часть функций java.time портирована на Java 6 & amp; 7 в ThreeTen-Backport .
- Android Проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше) специально для Android. См. Как использовать ThreeTenABP ... .
Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти некоторые полезные классы, такие как
Interval
,YearWeek
,YearQuarter
и more .