我正在尝试编写一个方法,将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;
}
答案 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
。