0

我正在尝试编写一种方法来将 util.Date 中的时间返回到字符串。当我尝试返回时间是上午还是下午并且分钟没有在前面显示 0 时,我得到“0”。我正在尝试以以下格式返回时间HH:mm am_pm

这是我的方法:

public String getTime() {
  Calendar cal = Calendar.getInstance();
  int hr = cal.get(Calendar.HOUR);
  int min = cal.get(Calendar.MINUTE);

  return String.valueOf(hr) + ":" + String.valueOf(min) + " " + cal.get(Calendar.AM_PM);
}

输入:2:00(JFormattedTextField 中的 HH:mm SimpleDateFormat)

输出:2:0 0

编辑:尝试使用 SimpleDateFormat 但我收到类型不匹配错误

public String getTime()
{
    SimpleDateFormat format = new SimpleDateFormat("HH:mm aa");
    date = format.toString().toString();
    return date;
}
4

3 回答 3

3

这样的事情会做:

DateFormat df = new SimpleDateFormat("hh:mm aa");
String timeNow = df.format(new Date());
于 2013-05-30T22:58:30.430 回答
0

改为使用SimpleDateFormat

public String getTime() {
    // If you want the current hour
    SimpleDateFormat format = new SimpleDateFormat("HH:mm aa");
    return format.format(new Date());
}
于 2013-05-30T23:00:04.083 回答
0

cal.get(Calendar.AM_PM)上午返回 0,下午返回 1。将最后一行替换为:

return String.valueOf(hr) + ":" + String.valueOf(min) + " " + cal.get(Calendar.AM_PM) == Calendar.AM ? "am" : "pm";

考虑使用SimpleDateFormat.

于 2013-05-30T23:00:27.893 回答