Почему angular конвейер даты не поддерживает формат языка по умолчанию, такой как Intl.DateTimeFormat? - PullRequest
0 голосов
/ 18 февраля 2020

Я использую angular конвейер даты для форматирования даты. Я хочу отформатировать дату в зависимости от локали пользователя / клиента. Например, «мм / дд / гггг» для английского языка sh США (en-US) и дд.мм.ггг для немецкого языка (de-de). Angular имеют параметры формата, такие как короткий, средний и длинный. Они не соответствуют формату локали по умолчанию. Если я go для настроенного формата даты, у меня нет разделителя локали. Intl DateTimeFormat предоставляет точную форматированную дату. Есть ли способ достичь этого с помощью angular date pipe?

1 Ответ

1 голос
/ 18 февраля 2020

Прежде всего убедитесь, что вы загрузили данные локали. Вы можете сделать это в app.module.ts , как указано в документации :

import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';

registerLocaleData(localeDe);

Тогда у вас есть две альтернативы.

  1. Вы можете установить для переменной LOCALE_ID предпочитаемую локаль (de-DE в вашем случае). Это можно сделать, используя флаг --i18nLocale в ng build или ng serve, или это можно сделать, указав значение во время bootstrap ( см. Документацию ). Если вы используете это, дата будет отформатирована в соответствии с правилами этой локали везде, где вы ее используете.
  2. Вы можете установить локаль в качестве третьего параметра в DatePipe. Если вы используете этот подход, он будет влиять только на указанное c использование канала данных. Параметры разделены :, и если вы хотите поведение по умолчанию для какого-либо предыдущего параметра, вы можете установить его как неопределенное. В следующем примере показаны дата и время в формате даты de-DE без смещения часового пояса: myDate | date : 'medium' : undefined : 'de-DE'. Проверьте этот стек , чтобы получить больше примеров
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...