2012-07-12 11 views

Odpowiedz

2

To powinno działać:

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")); 
} 
} 
}; 

Znaleziony na earlier question.

+0

Bez urazy, ale jest to zbyt gorączkowa metoda i rodzaj nadmiernego zakodowania. – eRaisedToX

9

spróbować

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

Działa dla mnie ... dzięki –

1

z kodu, wygląda na to, że używasz obiektów Date. Zalecam używanie obiektów Kalendarza, jeśli to możliwe. W razie potrzeby można uzyskać obiekt Date z obiektu kalendarza za pomocą metody kalendarza getTime().

Jeśli masz obiekt Kalendarz, można wykonać następujące czynności:

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

DateUtils jest częścią ram Android i jest dostępny z powrotem do poziomu API 3. getAMPMString() Zwraca zlokalizowaną wersję AM/PM. Zobacz docs na stronie programisty Androida.

Jeśli nie masz dostępnego obiektu Kalendarz można utworzyć jedną z obiektu Data:

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

Jednak od kalendarza są na ciężkie niepożądane, jesteś lepiej pracuje z kalendarza obiektów bezpośrednio zamiast tworzyć i wyrzucać je.

Powiązane problemy