我无法尝试以24小时格式显示时间.我有它在另一个时区显示时间但我不能让它以24小时格式显示.
<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" />
还可以使用TextClock显示日期吗?
解决方法
如果您的系统处于12小时模式,则不必编写子类来获得所需的内容.
JavaDocs说:
- In 12-hour mode:
- Use the value returned by getFormat12Hour() when non-null
- Otherwise,use the value returned by getFormat24Hour() when non-null
- Otherwise,use a default value appropriate for the user’s locale,such as 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.)