Полагаю, вы отображаете время, используя объект <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html" rel="nofollow noreferrer">DateFormat</a>
. Я даже предполагаю, что вы получите свой экземпляр, вызвав метод <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#getTimeInstance(int)" rel="nofollow noreferrer">DateFormat.getTimeInstance()</a>
. Что вам нужно знать, так это то, что экземпляр DateFormat, полученный с помощью различных статических методов get * Instance, привязан к данной локали. Как следствие, если вы хотите отображать 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="nofollow noreferrer">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="nofollow noreferrer">public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)</a>
, который позволит вам определить собственный экземпляр DateFormatSymbols
. Построение этого объекта оставлено в качестве упражнения.
Другие три конструктора используют либо объект Locale по умолчанию, либо заданный объект Locale
(из которых, очевидно, будет использоваться только DateFormatSymbols
)