angular / angular/components

datepicker: shows date using provided LOCALE_ID but parses date using default US locale (or a combination of them)

Ouverte
#14,291 30 commentaires 29 réactions 0 personnes assignées Voir sur GitHub
area: docs area: material/datepicker i18n P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

#### Bug, feature request, or proposal:
Bug. I don't think it is working like that on purpose.

#### What is the expected behavior?
Date picker uses provided en-GB LOCALE_ID for parsing typed in date - 27/10/2018 input manually by typing is valid

#### What is the current behavior?
Typed date is parsed using US locale - 27/10/2018 input manually is invalid, 12/01/2018 is December, not January.

#### What are the steps to reproduce?
https://stackblitz.com/edit/angular-datepicker-locale?file=main.ts

1. Select 27/10/2018 using date picker.
2. Modify the date by editing the input to 26/10/2018
3. Observe invalid input

#### What is the use-case or motivation for changing an existing behavior?
Make material datepicker great again! But seriously: it seems like if a culture is provided it should affect both parsing and formatting aspects of dealing with dates and not format it into a date which is considered invalid when updated by typing.

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
As in demo: Angular 7.1.0 Material 7.1.0. It fails validation on chrome if day (month?) is over 12, but on IE 11 is more curious as it modifies the year, I am fairly sure the swap issue causes it to work incorrectly on any browser.

#### Is there anything else we should know?
I think it may have been an issue with parsing the text date from text - it seems like it would parse using US culture ignoring provided locale.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par le StackBlitz lié et son main.ts, en reproduisant le comportement du datepicker en-GB en sélectionnant, puis en modifiant une date. Suivez la façon dont le datepicker formate et analyse la saisie, puis vérifiez que des dates telles que 27/10/2018 sont acceptées de manière cohérente avec la locale fournie et que la reproduction existante n'échoue plus lors de la validation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend, internationalization
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.