我有一个安卓的TextClock,应该只显示系统的12小时格式的时间。问题是它是以24小时格式显示的,即使系统本身以12小时格式显示它。我已经在文本视图中使用了android:format12Hour="HH:mm:ss",但它似乎完全忽略了这一点。
我知道android的指导方针说不要超过用户的系统设置,但是这个文本时钟是专为石油钻井行业的数学计算而设计的,需要它以12小时的格式显示。
发布于 2017-10-19 02:10:21
乔普·埃根的解决方案奏效了。
In java SimpleDateFormat HH = 24h, hh = 12h不知道我是怎么忽视这一点的。))谢谢!
发布于 2018-02-24 09:07:50
我刚遇到这个问题,就这样解决了:
if (sharedPreferencesSingleton.getUserPreferences24HourMoodBoolean()){
textClock.setFormat12Hour("HH:mm");
textClock.setFormat24Hour("HH:mm");
} else {
textClock.setFormat24Hour("hh:mm a");
textClock.setFormat12Hour("hh:mm a");
}无论默认用户设置是什么,这都会覆盖格式。
发布于 2017-10-16 22:38:37
android:format12Hour指定在TextClock使用12小时模式时使用的格式,但它没有强制执行:
指定用于在12小时模式中显示时间和/或日期的格式化模式。
因此,如果用户的设备使用12小时的时钟模式,那么将使用该格式,否则将使用android:format24Hour。
在石油钻井行业,需要它以12小时的格式显示。
请原谅我的法语,但这通常是纯粹的废话。时间计算如何受到显示它的的影响?不管用户使用什么时钟模式,结果都是一样的。如果没有,那么你的应用程序就坏了,应该被修复。
编辑
TextClock是相当简单的小部件。如果当前的实现不适合您的需要,请编写自己的实现。您甚至可以重用当前的代码TextClock.java。
https://stackoverflow.com/questions/46780010
复制相似问题