我正在尝试根据用户的设置获取格式化的日期(年、月、日)和时间(小时、分钟、秒)字符串。Android Developers Google Group 中的这篇文章描述了我遇到的确切问题,但没有人帮助那个人解决它。我总结一下:
Android 有这些类尝试执行上述操作,但没有一个类同时使用用户首选项和显示秒数。
java.text.DateFormat
不使用设置应用程序中设置的首选项android.text.format.DateFormat
获取一个使用andjava.text.DateFormat
正确格式化输出的对象,但不包括秒数。getDateFormat()
getTimeFormat()
getTimeFormat()
android.text.format.DateUtils
不使用在设置应用程序中显示日期的首选项设置,也无法显示秒数。
例如,设置中的首选项设置为 DD/MM/YYYY 和 24 小时格式 = on,运行以下代码:
long timestamp=System.currentTimeMillis();
sometextview.setText(
java.text.format.DateFormat.getDateTimeInstance().format(new Date(timestamp))
+"\n"+
android.text.format.DateFormat.getDateFormat(this).format(new Date(timestamp))
+" "+
android.text.format.DateFormat.getTimeFormat(this).format(new Date(timestamp))
+"\n"+
android.text.format.DateUtils.formatDateTime(this,
timestamp,
DateUtils.FORMAT_SHOW_DATE|
DateUtils.FORMAT_SHOW_TIME|
DateUtils.FORMAT_SHOW_YEAR)
);
在 textview 中给我以下输出:
Apr 27,2014 5:47:18 PM
27/04/2014 17:47
April 27,2014, 17:47
None 给出了所需的输出,使用上述首选项将是这样的:
27/04/2014 17:47:18
我也查看了joda-time-android库,但它似乎没有做我需要的(如果我错了,请纠正我)。
TL;DR:您如何根据用户偏好在 Android 上使用秒来格式化日期/时间?