我的时间以这种格式显示:11:35 PM。
但我想要这种格式:11:35 P.M.
<-- 注意额外的点。
这是我当前的方法:
SimpleDateFormat("hh:mm a.").format(calendar.getTime());
这是我尝试过的,但它会崩溃:
SimpleDateFormat("hh:mm .a.").format(calendar.getTime());
最佳答案
如果您想要覆盖 AM/PM 文本,但保留正常格式,请使用 DateFormatSymbols
对象。
使用 DateFormatSymbols
确保 SimpleDateFormat
可用于解析和格式化。
与 my other answer 相比,此解决方案的优势,是您不会受到 JDK 在未来版本和/或其他 JDK 实现中更改特定区域设置格式的影响。
以下示例使用美国英语的标准格式,但将 AM/PM 文本覆盖为带句点的大写形式。该示例表明解析和格式化都有效。
DateFormatSymbols symbols = DateFormatSymbols.getInstance(Locale.US);
symbols.setAmPmStrings(new String[] { "A.M.", "P.M." });
SimpleDateFormat fmt = new SimpleDateFormat("hh:mm a", symbols);
Calendar cal = Calendar.getInstance();
cal.setTime(fmt.parse("10:23 A.M."));
cal.add(Calendar.MINUTE, 500); // 8 hrs 20 mins
System.out.println(fmt.format(cal.getTime())); // prints: 06:43 P.M.
关于java - 如何使用日历获取当前时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46756826/