java - 如何使用日历获取当前时间?

标签 java android calendar

我的时间以这种格式显示: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/

相关文章:

c# - 在 ajax 日历扩展器控件中禁用周末和国定假日

java - 当您的应用程序部署到云时,符合 JCache 标准的分布式缓存如何工作?

java - 使用开关内部的开关 : Java

java - JXTable java.lang.IndexOutOfBoundsException : Invalid range

java - do...while 循环出现问题

java - 使用 Wi-Fi 将我的本地 PC 连接到 ANDROID 设备

java - zk:扩展日期框和日历小部件

android - 如何在 Firebase 创建用户时获取用户 ID

android - 为结果启动设置 Activity

ios - 将 .ics 导入 iOS 应用