【发布时间】:2013-04-05 13:55:39
【问题描述】:
在我的应用程序中,我可以选择暂停执行一段时间。我想显示执行将恢复的时间,包括秒数,并且我希望根据系统设置格式化时间字符串。这是我想出的代码:
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 小时设置?如果不是,如何获取系统格式的时间字符串表示(包括小时、分钟和秒)?
【问题讨论】:
-
没有。他们讨论日期格式。我对时间格式感兴趣。不幸的是,它们的工作方式并不总是相同。
-
如果你用 getTimeFormat 代替 getDateFormat
android.text.format.DateFormat.getTimeFormat(getApplicationContext()))? -
getTimeFormat() 返回“00:16”。 getDateFormat() 返回“2013 年 4 月 13 日”。我需要“00:16”+ 秒。
标签: java android time time-format