Entrainement
Module
Get Started with Dates, Times, and Time Zones - Training
Learn how to handle date and time effectively in C# applications.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Les classes de calendrier, telles que GregorianCalendar, ont une propriété TwoDigitYearMax
qui définit la dernière année d’une plage de 100 ans qui peut être représentée par une année à deux chiffres. Cette propriété est souvent utilisée pour traduire une année à deux chiffres en une année à quatre chiffres. Auparavant, la valeur par défaut de Calendar.TwoDigitYearMax était 2029 pour GregorianCalendar et les autres calendriers grégoriens, tels que JulianCalendar et EastAsianLunisolarCalendar. Cette valeur signifie que les années à deux chiffres comprises entre 00 et 29 sont traduites en 2000-2029. Les années à deux chiffres de 30 à 99 étaient traduites en 1930-1999. La valeur de propriété TwoDigitYearMax
par défaut de GregorianCalendar et des autres calendriers grégoriens est maintenant passée de 2029 à 2049. La nouvelle valeur signifie que les années à deux chiffres comprises entre 00 et 49 sont traduites en 2000-2049. Toute année comprise entre 50 et 99 sera traduite en 1950-1999.
En outre, sur Windows, la valeur par défaut de la propriété TwoDigitYearMax
est maintenant obtenue à partir du paramètre Windows correspondant (la valeur par défaut pour celui-ci est désormais également 2049). Cela correspond au comportement antérieur à .NET 5.
L’analyse de dates est la fonctionnalité qui est la plus affectée par cette modification.
Dans .NET 6 et .NET 7, si vous n’aviez pas spécifié de valeur pour TwoDigitYearMax, l’analyse d’une chaîne telle que « 12/10/35 » avec le calendrier grégorien produisait la date « 10 décembre 1935 ».
À partir de .NET 8, l’analyse d’une chaîne telle que « 12/10/35 » avec le calendrier grégorien produit la date « 10 décembre 2035 ».
.NET 8 Préversion 1
Ce changement est un changement de comportement.
Il est plus logique d’analyser une année à deux chiffres qui est relativement proche des deux chiffres de l’année en cours pour produire une année à quatre chiffres dans le siècle actuel plutôt que dans le siècle précédent. Le système d’exploitation Windows a également modifié ses paramètres par défaut par le même nombre (2049).
Si vous ne souhaitez pas que votre application dépende de la valeur par défaut lors de l’analyse d’une chaîne à une date, vous pouvez contrôler la façon dont une année à deux chiffres est traduite en année à quatre chiffres en définissant la propriété TwoDigitYearMax. Le code suivant montre comment la définir pour la culture invariante.
CultureInfo clonedInvariantCulture = (CultureInfo)(CultureInfo.InvariantCulture.Clone());
clonedInvariantCulture.DateTimeFormat.Calendar.TwoDigitYearMax = 2039; // Use any desired cutoff value.
DateTime dt = DateTime.Parse("12/25/45", clonedInvariantCulture);
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Entrainement
Module
Get Started with Dates, Times, and Time Zones - Training
Learn how to handle date and time effectively in C# applications.