2010-10-05 2 views
1

Я пытаюсь форматировать endTime, который доступен в минутах/часах в формате AM/PM. Проблемные области, кажется, находятся между 00.00 - 1.00 утром и 12.00 - 1.00 днем. Не уверен, что это правильный подход или есть более простой способ сделать это?Как форматировать часы, минуты в формате AM/PM

public final String getEndTime() { 
    StringBuffer buf = new StringBuffer(); 
    buf.append(this.getEndTimeInHrs() < 13 ? this.getEndTimeInHrs() : this 
      .getEndTimeInHrs() - 13).append(COLON); 

    // this check is needed to prefix an additional string in front of the 
    // minute (e.g. for 6 hrs 5 minutes, it will be displayed as 6:05) 
    if (this.getEndTimeInMinutes() < 10) { 
     buf.append(0); 
    } 
    buf.append(this.getEndTimeInMinutes()); 

    if (getEndTimeInHrs() < 12) { 
     buf.append(SPACE).append(AM); 
    } else if (getEndTimeInHrs() > 12) { 
     buf.append(SPACE).append(PM); 
    } 

    return buf.toString(); 
} 

ответ

3

Что об использовании SimpleDateFormat с h:mm a?

Например:

DateFormat df = new SimpleDateFormat("h:mm a"); 
Date date = new Date(0, 0, 0, getHours(), getMinutes()); 
return df.format(date); 
+0

не имеют дату в качестве входных данных, только время в часах/минутах – user339108

+0

Затем создать один См.. – Joey

+0

с использованием календаря вместо даты для создания даты – user339108

0

Может быть, попробовать (укажите дату вместо new Date()

public final String getEndTime() { 
    StringBuffer buf = new StringBuffer(); 
    new SimpleDateFormat("h:m a").format(new Date(), buf, 0); 
    return buf.toString(); 
} 
Смежные вопросы