将12小时系统时间转换为24小时,并用Java显示

将12小时系统时间转换为24小时,并用Java显示,java,calendar,Java,Calendar,我使用Calendar.getTime()方法获取设备时间。返回的时间为2000年2月1日星期二11:33:35”。 然后SimpleDataFormat.format(Calendar.getTime())返回7:33 PM(仅时间格式)作为输入值19:33(24小时格式) 这让我很困惑。后来我使用getTimeInstance()检查Calendar.getTime()返回的时间。值为:11:33:35 AM 我已将时区设置为SimpleDataFormat作为设备时区 现在我需要你的建议。

我使用Calendar.getTime()方法获取设备时间。返回的时间为2000年2月1日星期二11:33:35”。 然后SimpleDataFormat.format(Calendar.getTime())返回7:33 PM(仅时间格式)作为输入值19:33(24小时格式)

这让我很困惑。后来我使用getTimeInstance()检查Calendar.getTime()返回的时间。值为:11:33:35 AM

我已将时区设置为SimpleDataFormat作为设备时区

现在我需要你的建议。我应该使用DateFormat解析时间并返回SimpleDataFormat.format(Calendar.getTime())中的值吗

我知道Calendar.getTime()返回设备时间,SimpleDataFormat.format()使用设备时间。这可能是12小时格式的原因。但为什么Calendar.getTime()以PST返回时间,为什么SimpleDataFormat.format()将其转换为GMT并显示相同的时间

请帮我理解这一点。

试试看

SimpleDateFormat dateFormat= new SimpleDateFormat("h:mm:s  a");
System.out.println(dateFormat.format(new Date()));

我已将日期解析为所需格式