Мне кажется, этот вопрос очень общий для всех программистов на всех языках.
Это несколько размыто. Во-первых, есть локали, которые содержат информацию о культуре и другие вещи. Я полагаю, что эти объекты локали также инкапсулируют информацию о форматировании даты и времени, то есть, как отображать дату в стандарте Юникод. Вот так, например: "гггг-ММ-дд'ТХХ: мм: ссЗ". В каждой стране могут быть свои собственные правила форматирования даты и времени, поэтому мы все рады языкам, а пользователи наших приложений форматируют дату + время в соответствии с тем, что обычно в их регионе.
Но теперь действительно ужасная часть. Есть календари. Разные календари. Григорианский, как в США, Европе и некоторых других странах, но есть и еврейские, еврейские и мусульманские календари и многое другое. Теперь эти календари, конечно, разные. Они делят период времени года на единицы различной длины, у некоторых может быть 13 месяцев, у других могут быть только фазы луны вместо понедельника, вторника, среды и так далее. Я действительно не знаю, но я знаю, что некоторые из них кажутся очень странными для тех, кто привык к григорианскому календарю.
Но теперь размыто: кто на самом деле влияет на форматирование даты и времени? Язык? Календарная система? И то и другое? И говорит ли локаль, какую систему календаря обычно использовать? Как система календаря влияет на локаль и наоборот?
Я почти весь день искал эту тему, и она кажется трудной, как огромный кирпич.