无论如何得到上午/下午?

时间:2012-07-12 01:01:22

标签: android

  

可能重复:
  Displaying the Time in AM/PM format in android

我可以使用以下时间将其转换为字符串:

public static final String TIME_FORMAT = "h:mm a";
       SimpleDateFormat dateTimeFormat = new SimpleDateFormat(TIME_FORMAT);

String getstring = dateTimeFormat.format(when.gettime();

但我如何从中获取am / pm并将其转换为字符串,因为我需要它?

3 个答案:

答案 0 :(得分:11)

试试这个

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

答案 1 :(得分: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上找到。

答案 2 :(得分:1)

从您的代码中看起来您正在使用Date对象。如果可能,我建议使用Calendar对象。需要时,您可以通过Calendar的getTime()方法从Calendar对象中获取Date对象。

如果您有Calendar对象,则可以执行以下操作:

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

DateUtils是Android框架的一部分,可以返回API级别3. getAMPMString()返回AM / PM的本地化版本。请参阅Android开发人员网站上的docs

如果您没有可用的Calendar对象,可以从日期对象中创建一个:

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

但是,由于日历很重要,所以最好直接使用Calendar对象,而不是创建和删除它们。