如何在文本时钟中强制使用 12 小时时间格式



我在安卓中有一个TextClock,它应该只以12小时的格式显示系统中的时间。问题是它以 24 小时格式显示它,即使系统本身以 12 小时格式显示它。我已经在我的文本视图中使用了android:format12Hour="HH:mm:ss",但它似乎完全忽略了这一点。

我知道 android 指南说不要覆盖用户的系统设置,但这个文本时钟适用于专门为石油钻井行业的数学计算而设计的应用程序,需要以 12 小时格式显示。

Joop Eggen的解决方案奏效了。

In java SimpleDateFormat HH = 24h, hh = 12h

不知道我怎么忽略了这一点。 :)谢谢!

我刚刚遇到了这个问题,像这样解决它:

  if (sharedPreferencesSingleton.getUserPreferences24HourMoodBoolean()){
        textClock.setFormat12Hour("HH:mm");
        textClock.setFormat24Hour("HH:mm");
    } else {
        textClock.setFormat24Hour("hh:mm a");
        textClock.setFormat12Hour("hh:mm a");
    }

无论默认用户设置是什么,这都会覆盖格式。

android:format12Hour指定了 TextClock 使用 12 小时模式时要使用的格式,但它不强制执行:

指定用于在 12 小时模式下显示时间和/或日期的格式设置模式。

因此,如果用户的设备使用的是 12 小时时钟模式,则将使用该格式,否则将使用android:format24Hour

在石油钻井行业中,需要以12小时格式显示。

请原谅我的法语,但这通常是纯粹的BS。时间计算的显示方式如何影响时间计算?无论用户使用哪种时钟模式,您的结果都将是相同的。如果没有,那么您的应用程序已损坏,应该修复。

编辑

TextClock非常简单的小部件。如果当前实现不符合您的需求,请编写自己的实现。您甚至可以重用当前的代码 TextClock.java

最新更新