Извлечь время из даты Строка - PullRequest
48 голосов
/ 17 августа 2010

Как мне отформатировать строку даты "2010-07-14 09:00:02" так, чтобы она отображалась просто "9:00"?

Ответы [ 8 ]

112 голосов
/ 17 августа 2010

Используйте SimpleDateFormat для преобразования между строкой даты и вещественным Date объектом. с Date в качестве отправной точки, вы можете легко применять форматирование на основе различных шаблонов, как определено в javadoc SimpleDateFormat (щелкните синюю ссылку кода для Javadoc).

Вот начальный пример:

String originalString = "2010-07-14 09:00:02";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(originalString);
String newString = new SimpleDateFormat("H:mm").format(date); // 9:00
13 голосов
/ 17 августа 2010
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2010-07-14 09:00:02");
String time = new SimpleDateFormat("H:mm").format(date);

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

11 голосов
/ 15 сентября 2013

Очень простой способ - использовать Formatter (см. преобразование даты и времени ) или, более точно, String.format, как в

String.format("%tR", new Date())
4 голосов
/ 17 августа 2010

Используя SimpleDateFormatter

4 голосов
/ 17 августа 2010

Я предполагаю, что ваша первая строка является фактическим объектом Date, пожалуйста, исправьте меня, если я ошибаюсь. Если это так, используйте объект SimpleDateFormat: http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html. Об этом должна позаботиться строка формата "h: mm".

3 голосов
/ 03 мая 2017

Другие ответы были хорошими, когда задавался вопрос.Время движется, Date и SimpleDateFormat заменяются более новыми и лучшими классами и выходят из употребления.В 2017 году используйте классы в пакете java.time:

    String timeString = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
            .format(DateTimeFormatter.ofPattern("H:mm"));

Результат желаемый, 9:00.

3 голосов
/ 23 июня 2015

Если у вас есть дата в целых числах, вы можете использовать как здесь:

Date date = new Date();
date.setYear(2010);
date.setMonth(07);
date.setDate(14)
date.setHours(9);
date.setMinutes(0);
date.setSeconds(0);
String time = new SimpleDateFormat("HH:mm:ss").format(date);
0 голосов
/ 17 февраля 2017
let datestring = "2017-02-14 02:16:28"

let formatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.full
formatter.timeStyle = DateFormatter.Style.full

formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"

let date = formatter.date(from: datestring)
let date2 = formatter.String(from: date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...