2012-11-05 53 views
1

我有一个问题,显示一个人计算的睡眠周期正确的上午/下午。例如,用户在早上7点点击醒来时间,应用程序应在下午11:15返回睡眠时间。在我的应用程序中,它显示11:15 AM而不是PM。Timepicker上午/下午返回错误android

你能帮助我与我有什么到目前为止已经试过:

private TimePickerDialog.OnTimeSetListener timePickerListener = 
      new TimePickerDialog.OnTimeSetListener() { 

     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(minute).append(" PM"); 
      }else{ 
       sb.append(hour).append(":").append(minute).append(" AM"); 
      } 
      wakingtime.setText(sb); 

      // 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); 

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

      // set current time into textview 
      //answer.setText("You must go to bed at " + new StringBuilder().append(pad(hour)) 
       // .append(":").append(pad(minute))); 


     } 
    }; 

任何帮助是真正的赞赏!谢谢。

+0

如果(小时> = 12)在此行上放置一个断点,请运行您的代码,直到达到断点。小时是什么值? – Simon

+0

@Simon,[文档](http://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener.html)说它是“hourOfDay”。所以这必须是24小时格式。 – varevarao

+0

好点,所以继续并回答。小时= c.set(Calender.HOUR_OF_DAY); – Simon

回答

8

请参阅上面的@Simon小留言中的讨论,要设置的日历变量是Calendar.HOUR_OF_DAY。 Here是你设置,并获得。你想要那个下面的那个。

+0

所以我会使用Calendar.HOUR_OF_DAY? –

+0

是的。使用上面的代码对于Calendar.HOUR_OF_DAY是24小时格式有意义的; HOUR变量是12小时格式。 – varevarao

+0

谢谢,对不起这个问题(即时新手)我会在哪里将Calendar.HOUR_OF_DAY放在我的代码? –

相关问题