2012-12-15 31 views
1

可能重複:
Android date/time displaying 0 instead of 12的Android時間晚上零點應顯示下午12:00,而不是

下面是我使用的代碼:

public void onTimeSet(TimePicker view, int selectedHour, 
      int selectedMinute) { 
     // Gets current time 
     Calendar c = Calendar.getInstance(); 

     hour = selectedHour; 
     minute = selectedMinute; 

     // set waking time into textview 
     StringBuilder sb = new StringBuilder(); 
     if(hour >= 12){      
      sb.append(hour-12).append(":").append(pad(minute)).append(" PM"); 
     }else if(hour == 0){ 
      sb.append("12").append(":").append(pad(minute)).append(" AM"); 
     } else if(hour == 24){ 
      sb.append(hour+24).append(":").append(pad(minute)).append(" PM"); 
     } 

     else{ 
      sb.append(hour).append(":").append(pad(minute)).append(" AM"); 
     } 

     // Assign hour set in the picker 
     c.set(Calendar.HOUR, selectedHour); 
     c.set(Calendar.MINUTE, selectedMinute); 

     // Have Calendar calculate the substraction of hours and minutes 
     c.add(Calendar.HOUR, SUB_HOUR); 
     c.add(Calendar.MINUTE, SUB_MINUTE); 

     // Get the hour and the minute calculated 
     hour = c.get(Calendar.HOUR); 
     minute = c.get(Calendar.MINUTE); 
     //hour = c.get(Calendar.HOUR_OF_DAY); 

     StringBuilder sb2 = new StringBuilder(); 
     if(hour>=12){      
      sb2.append(hour-12).append(":").append(pad(minute)).append(" PM"); 
     }else if(hour == 0){ 
      sb2.append("12").append(":").append(pad(minute)).append(" AM"); 
     } 
     else{ 
      sb2.append(hour).append(":").append(pad(minute)).append(" AM"); 
     } 

     // set current time into textview 
     answer.setText("To wake up at " + sb + ", you must go to bed at " + sb2); 

在我的第一個StringBuilder,當用戶選擇12:00 pm時,它顯示在0:00 Pm不是1下午2點,我該怎麼做?提前致謝。

+0

你到底?將24小時時間顯示爲12小時或其他內容? – RobinHood

+0

顯示24小時到12小時 –

+0

'%12'和'if(小時== 0)小時= 12;' – anthropomo

回答

1

建議的副本並未真正回答問題。串建築之前,你需要以下

hour = hour % 12 
if(hour == 0) 
    hour = 12; 

__

更新: 模之前,這樣做:

// set this variable so it will be in scope 

boolean morning = true 
//then 
if (hour >=12 && hour < 24) morning = false; 
else morning = true; 

而在你的StringBuilder使用布爾值

+0

嗨我試過了你的代碼,但是當我點擊下午按鈕時,它顯示上午12:00? –

+0

仍然收到相同的錯誤。但現在很奇怪,我選擇了12:00 AM,它不在AM中顯示 –

相關問題