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