7

可能重复:
在 android 中以 AM/PM 格式显示时间

我可以使用以下方法获取时间并将其转换为字符串:

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

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

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

4

3 回答 3

18

尝试这个

Calendar now = Calendar.getInstance();
int a = now.get(Calendar.AM_PM);
if(a == Calendar.AM)
   System.out.println("AM"+now.get(Calendar.HOUR));
于 2012-07-12T01:41:43.270 回答
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"));
}
}
};

较早的问题上找到。

于 2012-07-12T01:04:01.667 回答
1

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

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

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

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

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

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

但是,由于 Calendar 比较重,您最好直接使用 Calendar 对象,而不是创建和丢弃它们。

于 2012-07-12T01:55:29.483 回答