Moment.js区域设置日期不会更改

时间:2019-08-26 09:41:56

标签: angular momentjs

我尝试将几个月翻译成德语,但是我仍然得到英语个月。我已经阅读了所有论坛,但仍然无法解决问题。

import moment from 'moment/src/moment';
import localization from 'moment/locale/de';

ngOnInit() {
    moment.locale('de', localization);
    console.log(moment.locales()); // output is 'de'
    console.log(moment.months()) // output is 'January', 'February', ...
}

3 个答案:

答案 0 :(得分:1)

您不应该从locale方法中指定第二个参数:

moment.locale('de');

修改

在您的模块中,您应该注册语言环境,导入MatMomentDateModule并声明LOCAL_ID:

import { MatMomentDateModule } from '@angular/material-moment-adapter';
import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';
import localeDeExtra from '@angular/common/locales/extra/de';

registerLocaleData(localeDe, 'de-DE', localeDeExtra);

@NgModule({
  ...,
  imports: [MatMomentDateModule],
  providers: [
    { provide: LOCALE_ID, useValue: 'de-DE' },
  ],
  ...,
})
export class AppModule {}

答案 1 :(得分:0)

我已经做了更改,看看

https://stackblitz.com/edit/angular-mb2emg

解决方案:除了'moment'之外,还显式导入语言环境:

import moment from 'moment';
import 'moment/locale/de';

答案 2 :(得分:0)

它对我有用,我做了以下更改:-

moment.locale('de');
alert(moment.months()); // output is german months