Все ответы, используя java.util.Date
и java.text.DateFormat
/.SimpleDateFormat
устарели. Те старые классы с датами плохо разработаны, запутываются и хлопотны. Избежать их.
java.time
java.time каркас встроен в Java 8 и более поздних версий. Огромное улучшение по сравнению с старыми классами времени.
Большая часть функциональности java.time будет обратно портирован на Java 6 & 7 в ThreeTen-Backport и дополнительно выполнен с возможностью Android в ThreeTenABP (см How to use…).
Сначала замените SPACE в середине вашей входной строки на T
, чтобы соответствовать стандарту ISO 8601. Эти стандартные форматы используются по умолчанию в классах java.time при разборе/генерации строк.
String input = "2016-02-29 18:31:51".replace(" " , "T");
Анализ в качестве LocalDateTime
. «Локальный» означает не связанный с каким-либо часовым поясом. Так что это не фактический момент на шкале времени. Но, видимо, это не проблема в контексте этого Вопроса.
LocalDateTime ldt = LocalDateTime.parse(input);
Теперь вы можете запросить свои различные предметы по мере необходимости, вызвав различные методы получения. Эти методы возвращают int
primitive, которые вы можете, конечно, преобразовать в значения String.
Вы должны использовать SimpleDateFormat https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html – JChap