1

似乎有很多方法可以在 Android 中格式化日期和时间 - 但没有一种完全符合我的要求 ;-)

我能够找到的方法涉及区域设置(直接或间接) - 但正确的方法必须是使用用户在“设置 - 日期和时间”中配置的内容。

使用例如:

String res = java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.SHORT, java.text.DateFormat.MEDIUM).format(date);
                Log.d("", res);

日志:2013 年 4 月 9 日下午 12:11:34

res = android.text.format.DateUtils.formatDateTime(getActivity(), date.getTime(), android.text.format.DateUtils.FORMAT_SHOW_TIME | android.text.format.DateUtils.FORMAT_SHOW_DATE  | android.text.format.DateUtils.FORMAT_SHOW_YEAR);
                Log.d("", res);

日志:2013 年 4 月 9 日 12:11

但这不是它的配置方式,当我查看文件的日期和时间时,它被写为:09/04/2013 12:11

那么如何获取在“设置 - 日期和时间”中配置的格式字符串(如“yyyy-MM-dd”和“HH:mm”),或者如何获取根据这些规则格式化的日期?

4

3 回答 3

2

尝试使用以下代码:

public static String convertDateToUserFormat(final Date inputDate) {
if (inputDate != null) {
    return getDateFormat().format(inputDate);
}

return null;
}

private static DateFormat getDateFormat() {
    final String format = Settings.System.getString(context.getContentResolver(),
            Settings.System.DATE_FORMAT);
    if (TextUtils.isEmpty(format)) {
        return android.text.format.DateFormat
                .getDateFormat(context);
    }

    return new SimpleDateFormat(format);
}
于 2013-04-09T11:01:46.670 回答
1
Format dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
formattedDate = formatter.parse(yourDateString);

有关 DateFormatter的更多信息,请查看开发人员文档

于 2013-04-09T11:02:46.240 回答
-1

这是日期格式的示例

  SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
  Date date = new Date();

  System.out.println("format 1 " + sdf.format(date));

  sdf.applyPattern("E MMM dd yyyy");
  System.out.println("format 2 " + sdf.format(date));

您可以点击此链接了解更多信息在此处输入链接描述

于 2013-04-09T11:03:15.813 回答