Как изменить формат времени в разгаре - PullRequest
0 голосов
/ 01 июня 2010

Я использую качели и апплеты.
Если я выберу локаль как en_US, время будет отображаться в AM и PM.
Если я принимаю Locale как ms_MY, время отображается в Pagi и patang.

Как показать время в AM и PM при использовании локали ms_MY?

Пожалуйста, помогите мне

1 Ответ

3 голосов
/ 01 июня 2010

Полагаю, вы отображаете время, используя объект <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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...