CultureInfo.GetCultureInfo(“fr-FR”) n'est pas compatible avec fr-fr date format mais des amendes avec les autres
Pourquoi la première ligne de code lance "la Chaîne n'a pas été reconnu comme un DateTime valide." exception?
fr-GO ne semble pas compatible avec fr-US, mais, étrangement, compatible avec zh-CN et ru-ru chaîne de format de date.
Oui je peut simplement changer la culture d'info pour fr-fr pour le rendre compatible avec fr-fr date de chaîne de format. Mais ma question est pourquoi fr-GB fonctionne avec zh-CN et ru-ru chaînes de format?
des idées?
var obj = DateTime.Parse("11/20/2013 3:10:36 AM", CultureInfo.GetCultureInfo(0x0809).DateTimeFormat);//en-US
obj = DateTime.Parse("2013/11/20 3:16:08", CultureInfo.GetCultureInfo(0x0809).DateTimeFormat);//zh-CN
obj = DateTime.Parse("20.11.2013 3:17:44", CultureInfo.GetCultureInfo(0x0809).DateTimeFormat); //ru-RU
0x0809 fr-GO, anglais (royaume-Uni) anglais
Merci,
Pourquoi est-ce étonnant? Le royaume-UNI utilise un jour/mois/année, alors que les états-unis utilisent un mois/jour/année. Ils sont certainement différents.
alors, pourquoi la culture info fonctionne avec la chaîne de format de date dans zh-CN et ru-ru?
Bien le russe formulaire est déjà semblable à celle du royaume-UNI, juste en utilisant un autre délimiteur. Et les Chinois on est évidemment en commençant par l'année... sans doute à ce qu'il devine que le mois prochain. Quand vous avez deux à deux les valeurs numériques uns à côté des autres, je pense qu'elle essaie de l'utiliser pour la culture spécifique à la "normale" de la commande de mois et le jour.
alors, pourquoi la culture info fonctionne avec la chaîne de format de date dans zh-CN et ru-ru?
Bien le russe formulaire est déjà semblable à celle du royaume-UNI, juste en utilisant un autre délimiteur. Et les Chinois on est évidemment en commençant par l'année... sans doute à ce qu'il devine que le mois prochain. Quand vous avez deux à deux les valeurs numériques uns à côté des autres, je pense qu'elle essaie de l'utiliser pour la culture spécifique à la "normale" de la commande de mois et le jour.
DateTime.Parse
est Vraiment Foiré™. Il s'efforce d'interpréter votre chaîne, et peut assez facilement se tromper avec vous étant pas plus sage. Utilisation DateTime.ParseExact
lorsque cela est possible.OriginalL'auteur Lys | 2013-11-20
Vous devez vous connecter pour publier un commentaire.
Vous avez spécifié que vous attendez un
DateFormat
dansen-GB
qui est généralement dans le formatdd/MM/yyyy ...
et c'est d'essayer de créer une date avec une valeur de Mois de 20, ce qui n'existe pas.Si vous modifiez votre format d'entrée à
en-US
de sa mise en œuvre interne de votre date sera la bonne. Vous pouvez ensuite la sortie de laen-GB
format si vous le souhaitezL'en-GB analyse d'accepter un peu de formats différents, et des séparateurs. Ce qui importe le plus est de l'ordre de la date de pièces dans la chaîne.
OriginalL'auteur Xenolightning
Mon hypothèse ici est que fr est compatible avec les zh-CN, parce que le format est identique à la norme ISO. Ensuite, il est compatible avec ru-RU parce que la seule différence est le délimiteur. Les états-UNIS format est ni-ni, assez typique, il me semble. L'analyseur doit (mais je n'ai pas vérifié) toujours analyser correctement le format ISO (aaaa/mm/jj hh:mm:ss), et c'est le meilleur des cas, l'utilisation de la croix-de la langue et des modèles de données.
OriginalL'auteur Dan Allred