重複の可能性:
Android の日付/時刻が 12 ではなく 0 を表示する
以下は私が使用するコードです:
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 を選択すると、午後 12:00 ではなく午後 0:00 に表示されますが、どうすればよいですか? 前もって感謝します。