我正在使用swing框架和applets
如果我将区域设置作为en_US
,则时间显示在上午和下午
如果我将“区域设置”作为ms_MY
,则时间显示在Pagi和patang中。
使用区域设置ms_MY
时,如何在上午和下午显示时间?
请帮帮我
答案 0 :(得分:3)
我猜您使用DateFormat
对象显示时间。我甚至假设您通过调用DateFormat.getTimeInstance()
方法获取实例。您必须知道的是,通过各种get * Instance静态方法获得的DateFormat实例与给定的Locale绑定。因此,如果您希望显示AM或PM,则必须将getTimeInstance(int style, Locale aLocale)
版本与Locale.en_US一起使用。
但请注意!通过使用此方法,您的日期将以英语显示,因此日期名称将为英语。这真的是你想要的吗?我不知道,无论如何,这就是你得到的。
使用SimpleDateFormat
可以提高输出格式的精确度。
编辑更新了SimpleDateFormat的信息。
与我所说的相反,AM和PM可能与非英语小时显示相关联。但是,它不是立竿见影的,因为SimpleDateFormat的四个构造函数中的三个使用Locale obejct来获取它们的信息。混合各种语言信息的唯一方法是使用public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
构造函数,这将允许您定义自己的DateFormatSymbols
实例。构建此对象仅作为练习。
其他三个构造函数使用默认的Locale对象或给定的Locale
对象(显然,只使用DateFormatSymbols
)