Если ваша система находится в 12-часовом режиме, вам не нужно писать подкласс, чтобы получить то, что вы хотите. JavaDocs говорят:
- В 12-часовой режим:
- Используйте значение, возвращенное getFormat12Hour(), когда ненулевой
- В противном случае, используйте значение, возвращаемое getFormat24Hour(), когда не- нуль
- в противном случае, используйте значение по умолчанию, подходящий для локали пользователя, такие как HH: мм
Поэтому я ожидаю, что последняя строка в этом, чтобы сделать getFormat12Hour()
возвращение null
и, таким образом, использовать пользовательский getFormat24Hour()
формат:
<android.widget.TextClock
android:id="@+id/hk_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timeZone="GMT+0800"
android:format24Hour="MMM dd, yyyy k:mm"
android:format12Hour="@null" />
(BTW, как и другие упоминали, принудительные форматы должны использоваться с осторожностью. Если ваши пользователи хотели 24-часовых часов, они бы указали это в своих системных предпочтениях. И приложения, которые форсируют форматированные форматы даты и времени для своих пользователей, например MM/dd/yyyy
, предлагают рейтинги одной звезды (за исключением, в данном случае, пользователей из США и филиппинцев), так что хорошо, что вы используете MMM
! Вам все равно будет полезно использовать getBestDateTimePattern(), хотя, как мне кажется, потребуется подклассификация TextClock.)
Как я могу изменить его, чтобы добавить дату? – littledevils326
Я не уверен в вашем понимании «даты», но если вы имеете в виду день, месяц и год, разве это уже не включено в ваш формат «MMM dd, yyyy k: mm»? – saschoar