2012-07-12 111 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); 

然而,由于日历的是沉重的一面,你最好与日历对象直接工作而不是创造和摧毁它们。

相关问题