Я не слышал ни о каком устройстве форматирования даты Java, которое использует процедуры форматирования MS Windows (или просто определения в этом отношении).Так как Java предназначен для мультиплатформенности (компиляции один раз, запускается где угодно), он просто не может использовать базовое поведение ОС для обеспечения согласованности.
Вы можете использовать класс DateFormat, как определено здесь
DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
String formattedDate = dateFormatter(new Date());
Одна важная проблема, связанная с этим классом: длинные форматы дат разбиты на чешский, польский и русский, возможно, и на другие славянские языки.Вместо этого я рекомендую использовать СРЕДНИЙ формат даты.
Кстати.Это отформатирует даты для григорианских или юлианских календарей.Он не выдаст вам ни арабские, ни ивритские календари (хотя в некоторых странах по умолчанию используется старый).
Редактировать
Я не знаю ваших конкретных требований, но так как вы упомянули Locale, возможно, класс ICU4J DateFormat - это то, что вы ищете.Тем не менее, насколько мне известно (что может быть неполным здесь), они используют свой собственный форматер и локализованную текстовую базу данных.Однако эта база данных, вероятно, более полная (особенно на Mac), чем база данных, поставляемая в комплекте с JDK (предыдущий снимок ICU).