在我的应用中,我有一个选项来暂停执行一段时间。我想要展示执行将会恢复的时间,包括秒,并且希望这个时间字符串按照系统设置进行格式化。以下是我编写的代码:
long millis = getResumeTime();
String timeString;
timeString = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(millis);
这确实可以生成带秒的格式化字符串,但它返回AM/PM格式的时间,尽管我已在设置中设置了24小时制。更有趣的是,系统托盘中的时间使用24小时制正确格式化。
我尝试像这样使用DateFormat.getTimeFormat:
long millis = getResumeTime();
String timeString;
java.text.DateFormat df = android.text.format.DateFormat.getTimeFormat(this);
timeString = df.format(millis);
但是生成的字符串不包含秒数,我没有找到一种方法来包括它们。
我在Android 4.2模拟器上运行这段代码。我有什么遗漏吗?SimpleDateFormat是否不知道12/24小时制?如果不是,那么如何以系统格式获取时间的字符串表示形式(包括小时、分钟和秒)?
android.text.format.DateFormat.getTimeFormat(getApplicationContext()))
替换为getTimeFormat
,会发生什么? - Andrew Lazarus