Рубрики
Без рубрики

Reiwa – JavaScript International Date Format и новая имперская эпоха Японии

Контроль следующего императора в Японии означает, что вам нужно знать о JavaScript International Date и Time Format!. Помечено JavaScript, Internationalization, I18n, WebDev.

Как в ближайшее время в ближайшее время Император Акихито Японское правительство, правительство Японии объявило 1 апреля, что царствование следующего императора будет известен как эпоха Reiwa (令 和).

Вы можете задумываться, что «подожди, Япония не приняла Григорианскую календарную систему!?» – Ну да, Да, Япония проделал более 100 лет назад, однако, Япония использует как «западный» календарь, так и уникальный японский имперский год, который основан на легендарном основании Японии императором Джимю в 660 до н.э.

Во всяком случае, что я хочу поговорить в моем блоге, не о японской истории, а JavaScript Отрицательный DateTimeFormat Объект, который включает в себя языковую и локальную конкретную дату и время форматирования.

API интернационализации Ecmascript Первоначально был представлен в 2010 году и в настоящее время в 6-м издании, чтобы помочь локализовать выпуск дат, чисел и валют в JavaScript. И это было хорошо поддерживается крупными браузерами. (См. Могу ли я использовать Несомненно

Одно из свойств Intl Объект это DateTimeFormat , который включает язык и локаль конкретную дату и время форматирования.

Так да, с Отрицательный DateTimeFormat Объект, вы можете автоматически распечатать локальную дату Японии и время с японской имперской эпохи!

Используя datetimeformat.

Не указав локаль/язык, DateTimeFormat Использует локаль по умолчанию и часовой пояс по умолчанию, поэтому, когда я нахожусь на моей машине в США:

new Intl.DateTimeFormat().format(Date.now())

Возвращает сегодняшнюю дату в США как:

"4/2/2019"

Указание локалей

Вы можете получить локализованную дату и время, используя идентификатор локали (код языка и код страны/региона), как локалий Аргумент, например:

new Intl.DateTimeFormat('ru-RU').format(Date.now())

// "02.04.2019"

И Япония:

new Intl.DateTimeFormat('ja-JP').format(Date.now())

// "2019/4/2"

Хорошо, но вы все еще видите Грегорианский календарный год здесь. Так как вы можете сделать его полностью локализованным с имперским годом?

Ну, идентификатор локали, JA-JP , недостаточно, и вам нужно добавить расширение -u-ca-японский . Я точно не знаю, что это значит Но все, что я могу сказать, это JA-JP-U-CA-японские неловко сложный локальный код.

Отредактировано: спасибо, Жан-Кристофа Серлария Ибо дать мне знать, что В идентификаторе указывает расширение, -Ка говорит определяет тип календаря в этом случае, -Япанские календарь. Для получения дополнительной информации о данных локали см.: Технический стандарт Unicode # 35.

new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(Date.now())

// "31/4/2"

Теперь мы знаем, что это год 31. Но в каком году это? Как мы можем знать Имперское имя!?

Чтобы получить все сделку, используйте опции аргумент, в этом случае использовать эра :

new Intl.DateTimeFormat('ja-JP-u-ca-japanese', {era:'long'}).format(Date.now())

// ta-da! "平成31年4月2日"

Оооо, да, теперь вы получаете “平成 31 年 4 月 2 日”!

Давайте попробуем еще одну вещь с тайским языком:

new Intl.DateTimeFormat('th-TH-u-nu-thai', {era:'long'}).format(Date.now())

// "๒ ๔ พุทธศักราช ๒๕๖๒"

Уоо, я понятия не имею, как прочитать это, но это 2562 года в буддийском календаре!

Ну, вы можете найти подробную информацию о вариантах и узнать больше об этой теме на MDN веб-документы

Кроме того, я быстро записал это глупое маленькое веб-приложение под названием Это еще Rewa (令 和)? на https://reiwa-yet.glitch.me/ Отказ

Это должно сказать Нет До 1 мая 2019 года, когда Crown Prince Naruhito становится новым императором, имперский год должен быть изменен на 令 和 元年, Если в вашем браузере реализована новая эра !!! Итак, давайте обновим ваш браузер и посмотрите!

Оригинал: “https://dev.to/girlie_mac/reiwa-javascript-international-date-format-and-japan-s-new-imperial-era-2plj”