import { NativeDateAdapter } from '@angular/material'; export class LocalizedDateAdapter extends NativeDateAdapter { parse(value: any): Date | null { const invalidDate = new Date(NaN); if (typeof value === 'string') { if (value === '') { return null; } else { const splitted = value.split('/'); if (splitted.length !== 3) { return invalidDate; } else { const day = Number(splitted[0]); const month = Number(splitted[1]) - 1; const year = Number(splitted[2]); if (day < 1 || day > 31 || month < 0 || month > 11 || year < 1 || year > 9999) { return invalidDate; } return new Date(year, month, day); } } } else { const dateValue = typeof value === 'number' ? value : Date.parse(value); return isNaN(dateValue) ? invalidDate : new Date(dateValue); } } }