From f0b79aeed36f0839e4effaa36893b7ca71292563 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 14 Aug 2013 15:12:43 -0700 Subject: [PATCH] DateUtils should use the user's 12/24-hour preference, not the locale's. Bug: 10312832 Change-Id: If23c124cf8442988de5feccb6f2c40b808a2eb89 --- core/java/android/text/format/DateUtils.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java index cba350fa598ff..2b805a9bc367a 100644 --- a/core/java/android/text/format/DateUtils.java +++ b/core/java/android/text/format/DateUtils.java @@ -815,7 +815,13 @@ public class DateUtils * @return the formatter with the formatted date/time range appended to the string buffer. */ public static Formatter formatDateRange(Context context, Formatter formatter, long startMillis, - long endMillis, int flags, String timeZone) { + long endMillis, int flags, String timeZone) { + // icu4c will fall back to the locale's preferred 12/24 format, + // but we want to fall back to the user's preference. + if ((flags & (FORMAT_12HOUR | FORMAT_24HOUR)) == 0) { + flags |= DateFormat.is24HourFormat(context) ? FORMAT_24HOUR : FORMAT_12HOUR; + } + String range = DateIntervalFormat.formatDateRange(startMillis, endMillis, flags, timeZone); try { formatter.out().append(range);