2010-11-09 13 views
0

La date longue pour la culture "en-ca" est MMMM-jj-aa. C'est correct et j'ai vérifié cela avec la documentation. Vous pouvez vérifier le résultat dans .NET en procédant comme suit.NLS API donne une date longue erronée pour "en-ca"

Dim culture As CultureInfo = CultureInfo.GetCultureInfo("en-ca") 
    MsgBox(culture.DateTimeFormat.LongDatePattern) 

J'essaie de comprendre pourquoi il y a une différence avec l'API NLS qui retournera « MMMMM d, yyyy » comme la longue date par défaut. Ceci est une erreur. Est-ce que j'ai râté quelque chose? Je suis simplement curieux de savoir si quelqu'un connaît les détails à ce sujet.

API NLS Référence: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx

Répondre

2

Cela a changé entre 3.5SP1 .NET et .NET 4.0. .NET 3.5 produit MMMM d, aaaa, identique à la valeur Vista NLS documentée.

.NET 4.0 produit MMMM-dd-yy. Même chose que ce que je reçois quand je l'utilise GetLocaleInfo() sur Win7 avec:

wchar_t buf[256]; 
GetLocaleInfo(0x1009, LOCALE_SLONGDATE, buf, 256); 

Je pense que .NET 4.0 utilise maintenant l'info locale de Windows au lieu de compter sur ses propres tableaux. Néanmoins, rien ne change aussi vite que les données de culture. Si vous pensez que cela est incorrect, vous pouvez envoyer vos commentaires à l'adresse connect.microsoft.com