我在尝试以 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 说:
- 12小时模式下:
- 非空时使用 getFormat12Hour() 返回的值
- 否则,当非 null 时,使用 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。)
我的设备使用 12 小时格式。为了强制它使用 24 小时格式,我这样写:
textClock.setFormat12Hour("kk:mm");
我建议使用 java 文件,而不是在 xml 中设置时间格式
mTextClock.setFormat24Hour(format);
对于科特林
我用这条线将时间格式设置为 24 小时,并且工作正常。
mTextClock.format12Hour = "kk:mm"
希望这对您有帮助:
<TextClock
android:id="@+id/tc_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="h:mm:ss a - d MMM, yyyy"
android:format24Hour="k:mm:ss - d MMM, yyyy"
/>
是否以 12 小时或 24 小时格式显示时间取决于系统设置。也许您的 Android 设备或模拟器设置为 12 小时格式。这就是为什么你的
android:format24Hour
被忽略。如果您想通过覆盖系统设置来显示 24 小时格式(我不建议这样做),请添加 android:format12Hour="MMM dd, yyyy k:mm"
作为另一个属性。
但是,始终建议根据系统设置显示时间和日期。如果您的应用程序中有一些其他(例如布局)限制需要单独处理 12 小时或 24 小时模式,您可以通过在
is12HourModeEnabled()
上调用 is24HourModeEnabled()
或 TextClock
来动态检查代码中的设置。
对于你的第二个问题,文档说
TextClock 可以将当前日期和/或时间显示为格式化的 字符串。
这就是它的功能——显示时间和日期。如果您的意思是“当前日期之外的另一个日期”,则必须坚持使用简单的
TextView
并手动格式化日期字符串。
第一个问题:
我刚刚检查过,并且在您的设备上设置时:
如上所述,最好将选择权交给用户,并且不强迫他使用 ex。你最喜欢的格式。
第二个问题:
是的,确实如此。您只需要使用“android:format12Hour”和/或“android:format24Hour”。
android:format12Hour="MMM dd, yyyy"
android:format24Hour="MMM dd, yyyy"
MMM 表示月份名称的 3 个字符
dd 表示一天 2 个字符
yyyy 表示一年 4 个字符