在String中返回一个时间

时间:2013-05-30 22:53:24

标签: java datetime

我正在尝试编写一个方法,将util.Date中的Time返回给字符串。当我试图返回时间是在上午或下午并且分钟没有在前面显示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(HH:mm在JFormattedTextField中的SimpleDateFormat)

输出:2:0 0

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

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

3 个答案:

答案 0 :(得分:3)

这样的事情会:

DateFormat df = new SimpleDateFormat("hh:mm aa");
String timeNow = df.format(new Date());

答案 1 :(得分:0)

改为使用SimpleDateFormat

public String getTime() {
    // If you want the current hour
    SimpleDateFormat format = new SimpleDateFormat("HH:mm aa");
    return format.format(new Date());
}

答案 2 :(得分:0)

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

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

考虑使用SimpleDateFormat