Цитирование из Javadoc SimpleDateFormat :
Для форматирования, если количество букв шаблона составляет 4 или более, используется полная форма;в противном случае используется короткая или сокращенная форма, если она доступна
. Таким образом: (a) Если вы ожидаете увидеть разницу, используйте aaaa
(4 x a
) вместо aaa
(4 xa
).(b) Учитывая, что AM / PM не имеет краткой формы (или длинной формы), тогда для спецификатора a
число повторений не имеет значения.
И чтобы быть более тщательным, я запустилследующая программа.Было найдено ноль случаев, когда форматирование было затронуто.
Date date = new Date();
int n = 0;
for (String country : Locale.getISOCountries()) {
for (String language : Locale.getISOLanguages()) {
Locale loc = new Locale(language, country);
String as = "";
String prev = null;
for (int i = 0; i < 20; ++i) {
++n;
as += "a";
String current = new SimpleDateFormat(as, loc).format(date);
if (prev != null && !prev.equals(current)) {
System.out.println("Locale: " + loc + ", as=" + as + ", current="
+ prev + ", next=" + current);
}
prev = current;
}
}
}
System.out.println("Tried out " + n + " combinations.");