0

我需要在特定时区显示日期。

在我的 app.module 中,我以法语提供 locale_id,并且日期以良好的格式 DD/MM/YYYY 显示。

但是我得到了 UTC 格式的日期时间,我想在用户的时区显示日期。

我在法国电脑上工作。如果我制作此代码:

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

但是这个 :

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

如何在我的应用程序中为所有日期显示良好用户时区中的日期而不是硬代码

4

1 回答 1

0

基本上最好的方法是获取本地浏览器语言并告诉 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

于 2020-08-03T15:17:38.747 回答