如何根据设备配置正确格式化具有年,月,日,小时和分钟的日期和时间?
在我的应用程序中,我可以选择暂停执行一段时间.我想显示执行将恢复的时间,包括秒,我希望时间字符串根据设置进行格式化.这是我提出的代码:
long millis = getResumeTime();
String timeString;
timeString = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(millis);
Run Code Online (Sandbox Code Playgroud)
这确实产生了一个带有秒的格式化字符串,但它返回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);
Run Code Online (Sandbox Code Playgroud)
但结果字符串不包含秒,我没有看到包含它们的方法.
我在Android 4.2模拟器上运行此代码.我在这里错过了什么吗?SimpleDateFormat不知道12/24小时设置吗?如果没有,我如何以系统格式获得时间(包括小时,分钟和秒)的字符串表示?