0

I simply want to display a date/time according to device locale and settings like 12h/24h mode.

Having take a look at several posts here on SO, I finally tried to use this:

long millis = this.startDate.getTime();
if (DateFormat.is24HourFormat(context)) { // Why do I have to check that ?!?
    strDate = DateUtils.formatDateTime(context, millis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR);
} else {
    strDate = DateUtils.formatDateTime(context, millis, DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_TIME);
}

Unfortunately, DateUtils.FORMAT_24HOUR is now deprecated so, I wonder how to display a date taking care of device local and settings?

So SimpleDateFormat is not an expected answer as I don't want to specify the format myself.

fralbo
  • 2,534
  • 4
  • 41
  • 73

1 Answers1

0

Try android.text.format.DateFormat, notably getDateFormatOrder() to get the user's preferred date format.

Silvans Solanki
  • 1,267
  • 1
  • 14
  • 27