2010-10-05 192 views
1

我想格式化上午/下午格式的分鐘/小時的endTime。有問題的地區似乎在早上00.00 - 1.00和下午12.00 - 1.00之間。不知道這是正確的方法,還是有一種更簡單的方法來實現這一點?如何格式化上午/下午格式的小時,分​​鍾

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 2010-10-05 08:15:47

+0

然後創建一個見。編輯。 – Joey 2010-10-05 08:18:06

+0

使用日曆而不是日期構造日期 – user339108 2010-10-05 08:23:48

0

也許嘗試(提供您的日期,而不是new Date()

public final String getEndTime() { 
    StringBuffer buf = new StringBuffer(); 
    new SimpleDateFormat("h:m a").format(new Date(), buf, 0); 
    return buf.toString(); 
} 
相關問題