Loading core/java/android/text/format/DateFormat.java +10 −63 Original line number Original line Diff line number Diff line Loading @@ -259,68 +259,13 @@ public class DateFormat { /** /** * Returns a {@link java.text.DateFormat} object that can format the date * Returns a {@link java.text.DateFormat} object that can format the date * in short form (such as 12/31/1999) according * in short form according to the current locale. * to the current locale and the user's date-order preference. * * @param context the application context * @param context the application context * @return the {@link java.text.DateFormat} object that properly formats the date. * @return the {@link java.text.DateFormat} object that properly formats the date. */ */ public static java.text.DateFormat getDateFormat(Context context) { public static java.text.DateFormat getDateFormat(Context context) { String value = Settings.System.getString(context.getContentResolver(), return java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); Settings.System.DATE_FORMAT); return getDateFormatForSetting(context, value); } /** * Returns a {@link java.text.DateFormat} object to format the date * as if the date format setting were set to <code>value</code>, * including null to use the locale's default format. * @param context the application context * @param value the date format setting string to interpret for * the current locale * @hide */ public static java.text.DateFormat getDateFormatForSetting(Context context, String value) { String format = getDateFormatStringForSetting(context, value); return new java.text.SimpleDateFormat(format); } private static String getDateFormatStringForSetting(Context context, String value) { if (value != null) { int month = value.indexOf('M'); int day = value.indexOf('d'); int year = value.indexOf('y'); if (month >= 0 && day >= 0 && year >= 0) { String template = context.getString(R.string.numeric_date_template); if (year < month && year < day) { if (month < day) { value = String.format(template, "yyyy", "MM", "dd"); } else { value = String.format(template, "yyyy", "dd", "MM"); } } else if (month < day) { if (day < year) { value = String.format(template, "MM", "dd", "yyyy"); } else { // unlikely value = String.format(template, "MM", "yyyy", "dd"); } } else { // day < month if (month < year) { value = String.format(template, "dd", "MM", "yyyy"); } else { // unlikely value = String.format(template, "dd", "yyyy", "MM"); } } return value; } } // The setting is not set; use the locale's default. LocaleData d = LocaleData.get(context.getResources().getConfiguration().locale); return d.shortDateFormat4; } } /** /** Loading Loading @@ -353,14 +298,16 @@ public class DateFormat { * order returned here. * order returned here. */ */ public static char[] getDateFormatOrder(Context context) { public static char[] getDateFormatOrder(Context context) { return ICU.getDateFormatOrder(getDateFormatString(context)); return ICU.getDateFormatOrder(getDateFormatString()); } } private static String getDateFormatString(Context context) { private static String getDateFormatString() { String value = Settings.System.getString(context.getContentResolver(), java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); Settings.System.DATE_FORMAT); if (df instanceof SimpleDateFormat) { return ((SimpleDateFormat) df).toPattern(); } return getDateFormatStringForSetting(context, value); throw new AssertionError("!(df instanceof SimpleDateFormat)"); } } /** /** Loading Loading
core/java/android/text/format/DateFormat.java +10 −63 Original line number Original line Diff line number Diff line Loading @@ -259,68 +259,13 @@ public class DateFormat { /** /** * Returns a {@link java.text.DateFormat} object that can format the date * Returns a {@link java.text.DateFormat} object that can format the date * in short form (such as 12/31/1999) according * in short form according to the current locale. * to the current locale and the user's date-order preference. * * @param context the application context * @param context the application context * @return the {@link java.text.DateFormat} object that properly formats the date. * @return the {@link java.text.DateFormat} object that properly formats the date. */ */ public static java.text.DateFormat getDateFormat(Context context) { public static java.text.DateFormat getDateFormat(Context context) { String value = Settings.System.getString(context.getContentResolver(), return java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); Settings.System.DATE_FORMAT); return getDateFormatForSetting(context, value); } /** * Returns a {@link java.text.DateFormat} object to format the date * as if the date format setting were set to <code>value</code>, * including null to use the locale's default format. * @param context the application context * @param value the date format setting string to interpret for * the current locale * @hide */ public static java.text.DateFormat getDateFormatForSetting(Context context, String value) { String format = getDateFormatStringForSetting(context, value); return new java.text.SimpleDateFormat(format); } private static String getDateFormatStringForSetting(Context context, String value) { if (value != null) { int month = value.indexOf('M'); int day = value.indexOf('d'); int year = value.indexOf('y'); if (month >= 0 && day >= 0 && year >= 0) { String template = context.getString(R.string.numeric_date_template); if (year < month && year < day) { if (month < day) { value = String.format(template, "yyyy", "MM", "dd"); } else { value = String.format(template, "yyyy", "dd", "MM"); } } else if (month < day) { if (day < year) { value = String.format(template, "MM", "dd", "yyyy"); } else { // unlikely value = String.format(template, "MM", "yyyy", "dd"); } } else { // day < month if (month < year) { value = String.format(template, "dd", "MM", "yyyy"); } else { // unlikely value = String.format(template, "dd", "yyyy", "MM"); } } return value; } } // The setting is not set; use the locale's default. LocaleData d = LocaleData.get(context.getResources().getConfiguration().locale); return d.shortDateFormat4; } } /** /** Loading Loading @@ -353,14 +298,16 @@ public class DateFormat { * order returned here. * order returned here. */ */ public static char[] getDateFormatOrder(Context context) { public static char[] getDateFormatOrder(Context context) { return ICU.getDateFormatOrder(getDateFormatString(context)); return ICU.getDateFormatOrder(getDateFormatString()); } } private static String getDateFormatString(Context context) { private static String getDateFormatString() { String value = Settings.System.getString(context.getContentResolver(), java.text.DateFormat df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT); Settings.System.DATE_FORMAT); if (df instanceof SimpleDateFormat) { return ((SimpleDateFormat) df).toPattern(); } return getDateFormatStringForSetting(context, value); throw new AssertionError("!(df instanceof SimpleDateFormat)"); } } /** /** Loading