如果您的系统处于 12 小时模式,则不必编写子类来获得所需的内容。JavaDocs说:
- 在 12 小时模式下:
- 非空时使用 getFormat12Hour() 返回的值
- 否则,非空时使用getFormat24Hour()返回的值
- 否则,使用适合用户区域设置的默认值,例如 HH:mm
因此,我希望最后一行能够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" />
(顺便说一句,正如其他人所提到的,应谨慎使用强制格式。如果您的用户想要 24 小时制,他们会在他们的系统首选项中指定这一点。以及在其上强制数字格式、颠倒日期格式的应用程序用户,例如MM/dd/yyyy
,邀请一星评级(在这种情况下,来自美国和菲律宾用户除外),所以这是您使用的一件好事MMM
!不过,您最好还是使用getBestDateTimePattern(),其中,我相信,需要继承 TextClock。)