2012-07-12 54 views

回答

2

這應該工作:

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

上找到一個earlier question

+0

沒有冒犯,但這太忙碌的方法,以及一種過度編碼。 – eRaisedToX 2017-04-18 06:28:42

9

試試這個

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

它爲我工作......謝謝 – 2015-06-15 07:32:43

1

從你的代碼,它看起來像你使用Date對象。如果可能的話,我推薦使用Calendar對象。當需要時,您可以通過日曆的getTime()方法從日曆對象中獲取Date對象。

如果你有一個日曆對象,你可以做到以下幾點:

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

DateUtils是Android架構的一部分,可回API級別3 getAMPMString()返回AM/PM的本地化版本。請參閱Android開發人員網站上的docs

如果沒有可用日曆對象,你可以創建一個從日期對象:

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

然而,由於日曆的是沉重的一面,你最好與日曆對象直接工作而不是創造和摧毀它們。

相關問題