2016-11-23 3 views
-1

Я храню время в базе данных в следующем формате: "hh:mm:ss" (пример - 09:30:00), а затем извлекает и пытается показать его пользователям в таком формате: «hh: mm AM/PM» (пример 09: 30 AM).Есть ли способ преобразования времени из формата «hh: mm: ss» в формат «hh: mm AM/PM»?

Я использую ниже код для преобразования его:

DateFormat currentTime = new SimpleDateFormat("hh:mm a"); 
String startTimeInSF = currentTime.format(startTime); 
String endTimeInSF = currentTime.format(endTime); 

где startTime и endTime в формате hh:mm:ss, но приведенный выше код вызывает эту ошибку: java.lang.IllegalArgumentException: Bad class: class java.lang.String.

Пожалуйста, дайте мне знать, как я могу успешно конвертировать время с hh:mm:ss в hh:mm AM/PM?

+0

Попробуйте "чч: мм Tt" –

+0

@PrasannaKumarJ не удалось! создала эту ошибку: 'java.lang.IllegalArgumentException: Неизвестный шаблон символа 't'' –

+1

Вам нужен один' SimpleDateFormat' для анализа вашей даты из ее исходного формата и другого 'SimpleDateFormat' для форматирования результата в новый формат. –

ответ

3

Я думаю, вы должны разобрать ваш «чч: мм: сс» время в Date Object, а затем использовать форматировщик отформатировать его «чч: мм в».

Как это:

DateFormat format1 = new SimpleDateFormat("hh:mm:ss"); 
    try { 
     Date date = format1.parse("01:11:22"); 
     SimpleDateFormat format2 = new SimpleDateFormat("hh:mm a"); 
     String result = format2.format(date); 
     return result; 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
1

Я считаю, что вы ищете метод синтаксического анализа (String source). Методы format() принимают объект Date и выводят строковое представление объекта. методы parse берут объект String и преобразуют его в объект Date.

Чтобы сделать то, что вы хотите, вам нужно иметь DateFormat с hh: mm: ss, преобразовать базу данных String в Date, используя синтаксический анализ, а затем использовать существующий DateFormat и использовать формат объекта Date для получения выходную строку для отображения вашему пользователю.

http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html

0

Вы должны изменить свой код что-то вроде этого, функция формат не будет работать непосредственно на объекте Строка, которая является основной причиной вашего исключения.

DateFormat inputFormatter1 = new SimpleDateFormat"HH:mm:ss"); 
     Date date1 = inputFormatter1.parse("22:10:11"); 

     DateFormat outputFormatter1 = new SimpleDateFormat("hh:mm a"); 
     String output1 = outputFormatter1.format(date1); // 

Out будет 10:10 вечера