Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在TextClock中强制使用12小时时间格式?_Java_Android - Fatal编程技术网

Java 如何在TextClock中强制使用12小时时间格式?

Java 如何在TextClock中强制使用12小时时间格式?,java,android,Java,Android,我有一个android的TextClock,它应该只以12小时的格式显示系统的时间。问题是,即使系统本身以12小时格式显示,它也以24小时格式显示。 我已经在我的文本视图中使用了android:format12Hour=“HH:mm:ss”,但它似乎完全忽略了这一点 我知道安卓的指导方针说不要超过用户的系统设置,但这个textclock是为一个应用程序设计的,专门用于石油钻井行业的数学计算,需要以12小时的格式显示 android:format12Hour指定TextClock使用12小时模式时

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


我知道安卓的指导方针说不要超过用户的系统设置,但这个textclock是为一个应用程序设计的,专门用于石油钻井行业的数学计算,需要以12小时的格式显示

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

指定用于以12小时模式显示时间和/或日期的格式模式

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

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

请原谅我的法语,但那通常纯粹是废话。时间计算如何受显示方式的影响?无论用户使用什么时钟模式,结果都是一样的。如果没有,那么您的应用程序已损坏,应该进行修复

编辑


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

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

指定用于以12小时模式显示时间和/或日期的格式模式

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

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

请原谅我的法语,但那通常纯粹是废话。时间计算如何受显示方式的影响?无论用户使用什么时钟模式,结果都是一样的。如果没有,那么您的应用程序已损坏,应该进行修复

编辑


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

Joop Eggen的解决方案已经奏效

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

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

约普·艾根的解决方案奏效了

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");
    }

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

我刚刚遇到了这个问题,解决方法如下:

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

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

我怀疑您无法控制
TextClock
是基于API使用12小时格式还是24小时格式。您可能需要使用
TextView
并自己定期更新它,使用
postDelayed()
每隔~1秒获取一次控制权,并将
TextView
更新到当前时间。在java SimpleDataFormat中,HH=24h,HH=12h。你可以试试。Joop的解决方案奏效了。我怀疑你无法控制
TextClock
是基于API使用12小时格式还是24小时格式。您可能需要使用
TextView
并自己定期更新它,使用
postDelayed()
每隔~1秒获取一次控制权,并将
TextView
更新到当前时间。在java SimpleDataFormat中,HH=24h,HH=12h。你可以试试。Joop的解决方案奏效了。因为时间格式需要显示秒(状态栏中默认的android时钟不显示秒),然后用户将HH:MM:SS格式的时间输入到手持钻孔终端中。钻井终端仅接受12小时格式。这是我所在行业和我们员工的私人应用程序,因此是的,我们将强制文本时钟的显示方式。您的回答有点粗鲁。因为时间格式需要显示秒(状态栏中默认的android时钟不显示秒),然后用户将HH:MM:SS格式的时间输入到手持钻孔终端中。钻井终端仅接受12小时格式。这是我所在行业和我们员工的私人应用程序,因此是的,我们将强制文本时钟的显示方式。你的回答有点粗鲁。