diff --git a/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts b/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts index 1885eda5eda1..81d6fa7fe8ff 100644 --- a/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts +++ b/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts @@ -9,7 +9,7 @@ import {TestBed, waitForAsync} from '@angular/core/testing'; import {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core'; import {Locale} from 'date-fns'; -import {ja, enUS, da} from 'date-fns/locale'; +import {ja, enUS, da, de} from 'date-fns/locale'; import {DateFnsModule} from './index'; const JAN = 0, FEB = 1, MAR = 2, DEC = 11; @@ -175,6 +175,11 @@ describe('DateFnsAdapter', () => { expect(adapter.parse('', 'MM/dd/yyyy')).toBeNull(); }); + it('should parse based on the specified locale', () => { + adapter.setLocale(de); + expect(adapter.parse('02.01.2017', 'P')).toEqual(new Date(2017, JAN, 2)); + }); + it('should parse invalid value as invalid', () => { let d = adapter.parse('hello', 'MM/dd/yyyy'); expect(d).not.toBeNull(); diff --git a/src/material-date-fns-adapter/adapter/date-fns-adapter.ts b/src/material-date-fns-adapter/adapter/date-fns-adapter.ts index 2b0b0158c0ed..3065a90e6064 100644 --- a/src/material-date-fns-adapter/adapter/date-fns-adapter.ts +++ b/src/material-date-fns-adapter/adapter/date-fns-adapter.ts @@ -54,7 +54,7 @@ const DAY_OF_WEEK_FORMATS = { export class DateFnsAdapter extends DateAdapter { constructor(@Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: {}) { super(); - super.setLocale(matDateLocale); + this.setLocale(matDateLocale); } getYear(date: Date): number { @@ -165,7 +165,7 @@ export class DateFnsAdapter extends DateAdapter { } for (const currentFormat of formats) { - const fromFormat = parse(value, currentFormat, new Date()); + const fromFormat = parse(value, currentFormat, new Date(), {locale: this.locale}); if (this.isValid(fromFormat)) { return fromFormat;