Я использую Angular 8 и Angular Материал 8. У моего приложения есть этот код в AppModule:
{ provide: MAT_DATE_LOCALE, useFactory: "myFunctionToGetServerLanguageCode" }
Где myFunctionToGetServerLanguageCode - это метод, который возвращает строку типа «en-US» (на основе сервера). Затем у меня есть этот компонент с датщиком из Angular Материал с этими указанными c провайдерами:
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;
- , чтобы использовать тот же формат, что и культура;
Например, с MAT_DATE_LOCALE с "en -US ": Если я выберу 10 апреля 2020 года, я ожидал, что сборщик покажет« 04/10/2020 »(например, с форматом« L », который будет установлен как MM / DD / YYYY) и выдаст« 2020-04- 10T00: 00: 00.000Z "
В результате сборщик выдает" 2020-04-09T23: 00: 00.000Z ". Используя инструменты разработчика, выдается значение Moment с частным свойством "_isUt c", установленным как false.
Где я ошибаюсь?