Search code examples
javadatetimelocalizationinternationalization

How do I get localized date pattern string?


It is quite easy to format and parse Java Date (or Calendar) classes using instances of DateFormat.

I could format the current date into a short localized date like this:

DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
String today = formatter.format(new Date());

My problem is that I need to obtain this localized pattern string (something like "MM/dd/yy").

This should be a trivial task, but I just couldn't find the provider.


Solution

  • For SimpleDateFormat, You call toLocalizedPattern()

    EDIT:

    For Java 8 users:

    The Java 8 Date Time API is similar to Joda-time. To gain a localized pattern we can use class DateTimeFormatter

    DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);

    Note that when you call toString() on LocalDate, you will get date in format ISO-8601

    Note that Date Time API in Java 8 is inspired by Joda Time and most solution can be based on questions related to time.