Java 无法在Android中以AM、PM格式正确显示时间

Java 无法在Android中以AM、PM格式正确显示时间,java,android,Java,Android,我已经通过下面的代码使用AM-PM实现了时间格式化 Date date = new SimpleDateFormat("h:m").parse((mHour+":"+mMinute)); String newString = new SimpleDateFormat("hh:mm a").format(date); System.out.println("Time - "+newString); 但在上面的代码中有一个问题 如果我在TimePickerDialog中设置时间12:00am,它将

我已经通过下面的代码使用AM-PM实现了时间格式化

Date date = new SimpleDateFormat("h:m").parse((mHour+":"+mMinute));
String newString = new SimpleDateFormat("hh:mm a").format(date);
System.out.println("Time - "+newString);
但在上面的代码中有一个问题


如果我在
TimePickerDialog
中设置时间12:00am,它将显示12:00am,但如果我将
TimePickerDialog
中的时间更改为12:00pm,它仍将显示12:00am,这是因为
h
是用于12小时时间格式的。您的
TimePickerDialog
正在向您发送
24
hour格式

使用

编辑:
,请查看日期和时间模式部分。

这是因为
h
用于12小时时间格式。您的
TimePickerDialog
正在向您发送
24
hour格式

使用

编辑:
,请查看日期和时间模式部分。

hh,这是1-12小时格式。尝试使用大写字母HH,它使用0-23格式

“HH:mm”

所以使用

Date date = new SimpleDateFormat("HH:mm").parse((mHour+":"+mMinute));

hh这是1-12小时格式。尝试使用大写字母HH,它使用0-23格式

“HH:mm”

所以使用

Date date = new SimpleDateFormat("HH:mm").parse((mHour+":"+mMinute));

您是否在OnTimeSetListener中使用此代码可能存在重复?请尝试使用此代码而不是
hh
使用
h
String newString=new SimpleDateFormat(“h:mm a”)。格式(日期)
@Mohithrivastava你怎么能说它是重复的?我在am-PM中遇到了问题,我已经在am中实现了显示-PM@MohitShrivastava,我想展示08,这就是为什么我使用“hh”而不是“h”的原因。您是否在OnTimeSetListener中使用此代码?请尝试使用此代码而不是
hh
use
h
String newString=new SimpleDateFormat(“h:mm a”)。格式(日期)
@Mohithrivastava你怎么能说它是重复的?我在am-PM中遇到了问题,我已经在am中实现了显示-PM@MohitShrivastava,我想展示08,这就是为什么我用“hh”而不是“h”谢谢:)你能和我分享一下它的文档链接吗,这样将来我也能理解我应该在哪里使用“h”或“h”“就像thath@SiddhpuraAmit,添加到答案中。非常感谢:)你能和我分享它的文档链接吗?这样将来我也能理解我应该在哪里使用“H”或“H”之类的词thath@SiddhpuraAmit,补充到答案中。