ТЛ; др
LocalDateTime.parse(
"2012-03-04 00:00:00.0".replace( " " , "T" )
).format(
DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" )
)
java.time
В других Ответах используются старые классы даты и времени, которые в настоящее время являются устаревшими и полностью заменены современными классами java.time. Для более ранней версии Android см. Последние пункты ниже.
Анализировать как LocalDateTime
объект, так как на вашем входе отсутствует указание часового пояса или смещения от UTC.
String input = "2012-03-04 00:00:00.0".replace( " " , "T" ) ;
LocalDateTime ldt = LocalDateTime.parse( input ) ;
Если вы действительно не заботитесь о доле секунды, отрубите ее.
LocalDateTime ldtTruncated = ldt.truncatedTo( ChronoUnit.SECONDS ) ;
Укажите свой пользовательский формат для использования при генерации строки для представления этого значения.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" ) ;
String output = ldtTruncated.format( f ) ;
Дамп на консоль.
System.out.println( "input: " + input ) ;
System.out.println( "ldt: " + ldt ) ;
System.out.println( "ldtTruncated: " + ldtTruncated ) ;
System.out.println( "output: " + output ) ;
См. код, запущенный в режиме реального времени на IdeOne.com .
ввод: 2012-03-04T00: 00: 00.0
ldt: 2012-03-04T00: 00
ldtTruncated: 2012-03-04T00: 00
вывод: 2012-03-04 00: 00: 00
О java.time
Инфраструктура java.time встроена в Java 8 и более поздние версии. Эти классы заменяют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на java.time классы.
Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .
Где взять классы java.time?