我正在使用 Angular 8 和 Angular Material 8。我的应用程序在 AppModule 中有以下代码:
{ provide: MAT_DATE_LOCALE, useFactory: "myFunctionToGetServerLanguageCode" }
其中 myFunctionToGetServerLanguageCode 是一种返回字符串的方法,例如“en-US”(基于服务器)。然后,我将这个组件与来自 Angular Material 的日期选择器和这些特定的提供程序一起使用:
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS }
],
通过这种方式,我打算:
- 使用 datePicker 的时刻;
- 使日期选择器使用 utc+0;
- 使用与文化相同的格式;
例如,带有“en-US”的 MAT_DATE_LOCALE:如果我选择 2020 年 4 月 10 日,我希望选择器显示“04/10/2020”(例如,“L”格式将设置为 MM/DD/YYYY ) 并发出“2020-04-10T00:00:00.000Z”
发生的情况是选择器发出“2020-04-09T23:00:00.000Z”。使用开发人员工具,发出的值是私有属性“_isUtc”设置为 false 的时刻。
我哪里错了?