2012-07-12 11 views

Respuesta

2

Esto debería funcionar:

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

{ 

public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
TextView datehid = (TextView)findViewById(R.id.timehidden); 
if(hourOfDay>12) 
{ 

    datehid.setText(String.valueOf(hourOfDay-12)+ ":"+(String.valueOf(minute)+"pm")); 
} 
if(hourOfDay==12) 
{ 
    datehid.setText("12"+ ":"+(String.valueOf(minute)+"pm")); 
} 
if(hourOfDay<12) 
{ 
    datehid.setText(String.valueOf(hourOfDay)+ ":"+(String.valueOf(minute)+"am")); 
} 
} 
}; 

conocer en un earlier question.

+0

Sin ánimo de ofender, pero este es un método demasiado agitado y tipo de sobrecodificación. – eRaisedToX

9

probar esto

Calendar now = Calendar.getInstance(); 
int a = now.get(Calendar.AM_PM); 
if(a == Calendar.AM) 
    System.out.println("AM"+now.get(Calendar.HOUR)); 
+0

Su trabajo para mí ... gracias –

1

Desde su código, parece que estás usando objetos Date. Recomiendo usar objetos de calendario en su lugar, si es posible. Cuando sea necesario, puede obtener un objeto Date de un objeto Calendar mediante el método getTime() de Calendar.

Si usted tiene un objeto de agenda, puede hacer lo siguiente:

Calendar cal = ...; 
String ampm = DateUtils.getAMPMString(cal.get(Calendar.AM_PM)); 

DateUtils es parte del marco de Android y está disponible de nuevo a nivel de la API 3. getAMPMString() devuelve una versión localizada de AM/PM. Consulte el docs en el sitio del desarrollador de Android.

Si usted no tiene un objeto Calendar disponible, puede crear uno desde el objeto de fecha:

Date date = ...; 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Sin embargo, desde el Calendario de está en el lado pesado, es mejor trabajar con el calendario objetos directamente en lugar de crearlos y destruirlos.

Cuestiones relacionadas