2013-12-17 17 views
6

Ich habe Probleme mit der Konvertierung des 24-Stunden-Formats in das 12-Stunden-Format. Das ist mein Code.24-Stunden-Format im 12-Stunden-Format

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

      @Override 
      public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
       // TODO Auto-generated method stub 
       ViewGroup vg=(ViewGroup) view.getChildAt(0); 
       hour = hourOfDay; 
       minutes = minute; 
       String am_pm = (hourOfDay < 12) ? "AM" : "PM"; 
       SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US); 
       String tme = hour +":"+ minutes+am_pm; 
       et1.setText(tme); 
      } 
     }; 

I shift zu Timepicker Dialog von Alarm-Dialog, weil ich weiß nicht, wie man 12-Stunden-Format 24-Stunden ändern

et1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       new TimePickerDialog(MainActivity.this, mTimeSetListener, hour, minutes, false).show(); 
      } 
     }); 

    } 

Dies ist der Beweis, dass ich schon den Eindruck boolean drehen zu falsch.

Antwort

11

Versuchen this-

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

    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     // TODO Auto-generated method stub 
     hour = hourOfDay; 
     minutes = minute; 
     String timeSet = ""; 
     if (hour > 12) { 
      hour -= 12; 
      timeSet = "PM"; 
     } else if (hour == 0) { 
      hour += 12; 
      timeSet = "AM"; 
     } else if (hour == 12){ 
      timeSet = "PM"; 
     }else{ 
      timeSet = "AM"; 
     } 

     String min = ""; 
     if (minutes < 10) 
     min = "0" + minutes ; 
     else 
     min = String.valueOf(minutes); 

     // Append in a StringBuilder 
     String aTime = new StringBuilder().append(hour).append(':') 
     .append(min).append(" ").append(timeSet).toString(); 
     et1.setText(aTime); 
    } 
}; 
+0

Vielen Dank Sir! .. es funktioniert !. – user3032164

1

Warum Sie nicht verwenden

timePicker.setIs24HourView(false);

+0

ich es versuchen, das bereits, aber das Ergebnis ist das gleiche .. Das ist nur eine Ansicht der Zeitauswahl. – user3032164

2

Es gibt einen Konstruktorparameter

public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView) 

docs sehen. Und für die Formatierung Verwendung android.text.format.DateFormat

+0

jawohl .. das habe ich schon gemacht .. es tut mir leid, weil es an Informationen mangelt. – user3032164

1

Pls versuchen mit diesem Code

int Hour=0; 
int Minute=0; 
int new_hour=0; 
String new_minute=null; 
TimePickerDialog.OnTimeSetListener time = new TimePickerDialog.OnTimeSetListener() { 



public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     Hour = hourOfDay; 
     Minute = minute; 

     String time_form = hourOfDay + ":" + minute + ":00"; 
     int r = minute/10; 
     if (r == 0) { 
      new_minute = "0" + minute; 
     } else { 
      new_minute = minute + ""; 
     } 
     if (Hour > 12) { 
      new_hour = (hourOfDay - 12); 
      edit_text.setText(new StringBuilder().append(new_hour) 
        .append(":").append(new_minute) 
        + " PM"); 
     } else if (Hour == 12) { 

      new_hour = hourOfDay; 
      edit_text.setText(new StringBuilder().append(new_hour) 
        .append(":").append(new_minute) 
        + " PM"); 
     } 

     else { 
      new_hour = hourOfDay; 
      edit_text.setText(new StringBuilder().append(new_hour) 
        .append(":").append(new_minute) 
        + " AM"); 
     } 

    } 

}; 
4

I Ich weiß, ich bin zu spät, aber nur zwei Zeilen machen es perfekt.

private TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { 
     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      boolean isPM = (hourOfDay >= 12); 
      tvTime.setText(String.format("%02d:%02d %s", (hourOfDay == 12 || hourOfDay == 0) ? 12 : hourOfDay % 12, minute, isPM ? "PM" : "AM")); 
     } 
    }; 
0

Dies ist die Art, wie ich es tat. Formate Simple nimmt https://developer.android.com/reference/java/text/SimpleDateFormat.html#format

TimePickerDialog timePickerDialog= new TimePickerDialog(NotificationActivity.this, 
    new TimePickerDialog.OnTimeSetListener() { 
     @Override 
     public void onTimeSet(TimePicker timePicker, int hour, int minute) { 

      Time time = new Time(hour, minute, 0); 

      //little h uses 12 hour format and big H uses 24 hour format 
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mma"); 

      //format takes in a Date, and Time is a sublcass of Date 
      String s = simpleDateFormat.format(time); 
      toTime.setText(s); 
     } 
    }, hour, minute, false); 
Verwandte Themen