java - 如何更改swing中的时间格式

标签 java swing

我正在使用 swing 框架和小程序。
如果我将语言环境设置为 en_US,则时间显示为 AM 和 PM。
如果我将 Locale 设置为 ms_MY,则时间以 Pagi 和 patang 格式显示。

使用区域设置 ms_MY 时,如何显示 AM 和 PM 时间?

请帮助我

最佳答案

我猜你使用 <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html" rel="noreferrer noopener nofollow">DateFormat</a> 显示时间目的。我什至假设您通过调用 <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#getTimeInstance(int)" rel="noreferrer noopener nofollow">DateFormat.getTimeInstance()</a> 来获取实例方法。您必须知道的是,通过各种 get*Instance 静态方法获取的 DateFormat 实例与给定的 Locale 绑定(bind)。因此,如果您想显示 AM 或 PM,则必须使用 getTimeInstance(int style, Locale aLocale)带有 Locale.en_US 的版本。

但请注意!通过使用此方法,您的日期将以英文显示,因此日期名称将为英文名称。这真的是你想要的吗?我不知道,无论如何,这就是你会得到的。

使用 <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html" rel="noreferrer noopener nofollow">SimpleDateFormat</a> 可以获得更好的输出格式精度。

编辑更新了 SimpleDateFormat 的信息。

与我所说的相反,AM 和 PM 可以与非英语时间显示相关联。但是,它不是立即的,因为 SimpleDateFormat 的四个构造函数中的三个使用 Locale 对象来获取其信息。混合各种语言信息的唯一方法是使用 <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html#SimpleDateFormat(java.lang.String,%20java.text.DateFormatSymbols)" rel="noreferrer noopener nofollow">public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)</a>构造函数,它允许您定义自己的 DateFormatSymbols实例。构造这个对象留作练习。

其他三个构造函数使用默认的 Locale 对象或给定的 Locale对象(其中,显然,只有 DateFormatSymbols 将被使用)

关于java - 如何更改swing中的时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947585/

相关文章:

java - 如何一次销毁运行时中的所有进程?

java - Toast 不会在 Android 应用程序上显示,使用 android studio

java - 创建模型类并获取子节点内部的数据

java - 如何在java中模拟SHIFT +鼠标按键

java - 如何处理两个不同的事件

java - 将多行文本追加到 JTextArea?

java - 对 2 个不同监听器的类似覆盖

java - 基于Codenvy中URI的Java中的getResource

java - JFrame内容未完全显示

java - 如何删除 Java Swing 应用程序上的 native mac 标题栏