0

以下のコードの何が問題なのだろうか:

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

        // For alternative times
        c.add( Calendar.HOUR, SUB_SIX_HOUR );
        c.add( Calendar.MINUTE, SUB_FLAT_MINUTE );

        hour = c.get( Calendar.HOUR );
        minute = c.get( Calendar.MINUTE );
        hour = c.get( Calendar.HOUR_OF_DAY );

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


        alternative.setText( "Alternative times: " + sb3 + " (9 hours)" + sb4 + " (6 hours)" );

計算された時刻が真夜中の 12:00 の場合、0 ではなく 12 を表示する方法を教えてください。ありがとう!

4

2 に答える 2

2
 hour = c.get( Calendar.HOUR );
 minute = c.get( Calendar.MINUTE );
 hour = c.get( Calendar.HOUR_OF_DAY );

設定hour後に再度設定しています。

于 2012-12-15T10:48:39.693 に答える
-1

これを使用して、AM または PM を確認します。

c.get(Calendar.AM_PM);

ドキュメントについては、こちらを参照してください。Calendar.AM_PM

于 2012-12-15T11:01:21.163 に答える