Angular 9 часовой пояс DatePipe - PullRequest
       59

Angular 9 часовой пояс DatePipe

0 голосов
/ 03 августа 2020

Мне нужно отображать дату в указанном c часовом поясе.

В моем app.module я указываю locale_id на французском языке, а дата отображается в хорошем формате DD / MM / YYYY.

Но я получаю дату в формате UT C и хочу отображать дату в часовом поясе пользователя.

Я работаю на французском языке P C. Если я сделаю этот код:

let offset = new Date().getTimezoneOffset();
console.log(offset);
// I get -120

Но это:

{{gettingDate | date: 'short'}} 
// this display date time in UTC 

Как отображать для всей даты в моем приложении дату в часовом поясе хорошего пользователя, а не в жестком коде

1 Ответ

0 голосов
/ 03 августа 2020

По сути, лучше всего получить локальный язык браузера и указать Angular, в каком формате вы хотите отображать дату, LOCALE_ID поможет вам сделать это, поэтому в вашем модуле приложения вам нужно:

import {LOCALE_ID} from '@angular/core';

const localeLang: string = () => {
   const userLang = navigator.language || navigator.userLanguage;
return userLang.split('_')[0];  // example en_US -> en
};

в модуле приложения вашего провайдера

    providers: [
        {
            provide: LOCALE_ID,
            useFactory: localeLang
        },
]

для получения дополнительной информации https://angular.io/api/core/LOCALE_ID

...