我可以使用以下方法获取时间并将其转换为字符串:
public static final String TIME_FORMAT = "h:mm a";
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(TIME_FORMAT);
String getstring = dateTimeFormat.format(when.gettime();
但是我如何从中获取 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 并将其转换为字符串,因为我需要它?
尝试这个
Calendar now = Calendar.getInstance();
int a = now.get(Calendar.AM_PM);
if(a == Calendar.AM)
System.out.println("AM"+now.get(Calendar.HOUR));
这应该有效:
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"));
}
}
};
在较早的问题上找到。
从您的代码看来,您正在使用 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 对象,而不是创建和丢弃它们。