Date.toLocaleString() возвращает неверный языковой тег: en_GB, но класс Java.util.Locale возвращает локаль en_GB для Великобритании

Java.util.Locale возвращает формат локали "en_GB" для Великобритании. когда я использую ту же локаль в этой функции Date.toLocaleString(), которая возвращает неверный языковой тег: en_GB. Я просто хочу знать, почему java и javascript ведут себя по-разному и какое лучшее решение для этого

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
480
1

Ответы 1

I just want to know why java and javascript behaving differently

Потому что это разные языки, каждый из которых принимает собственные решения.

По общему признанию, существует стандартный BCP 47 для идентификации языков, и очень жаль, что Java предпочла его не использовать.

Однако java.util.Locale — это класс, и поэтому он ничего не «возвращает» сам по себе. То, что вы наблюдаете, является результатом автоматического преобразования объекта класса java.util.Locale в String. Это делается путем вызова метода toString() класса, который дает результат en_GB.

Опять же, жаль, что метод toString() был бы реализован для получения чего-то другого, кроме стандарта BCP 47, но BCP 47 был опубликован в 2009 году, а Java java.util.Locale в 1997 году. Некоторые программы были созданы для его использования. с момента его существования, и никто не хотел, чтобы эти программы ломались из-за произвольного изменения поведения методов.

В заключение, хотя есть смысл ожидать максимальных усилий по реализации принципа наименьшего удивления, слепо полагаться на автоматически выбранные преобразования по умолчанию при ожидании определенного формата все же довольно плохая практика. (В конце концов, это обсуждение касается указания языка, чтобы дата форматировалась правильно с использованием этого языка.)

and what is the best solution for this

Звоните toLanguageTag()

Другие вопросы по теме