Domanda

La data a lungo per la cultura "en-ca" è MMMM-GG-AA. Questo è corretto e ho verificato questo con la documentazione. È possibile verificare il risultato in .NET facendo quanto segue.

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

Sto cercando di capire il motivo per cui v'è una differenza con l'API NLS che restituirà "MMMMM d, yyyy", come la data di tempo predefinito. Questo non è corretto. Mi sto perdendo qualcosa qui? Sono solo curioso di sapere se qualcuno conosce le specifiche intorno a questo.

NLS API Reference: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx

È stato utile?

Soluzione

Questa è cambiato tra il .NET 3.5SP1 e .NET 4.0. NET 3.5 produce MMMM d, yyyy, identico al valore Vista NLS documentata.

.NET 4.0 produce MMMM-GG-AA. Uguale a quello che ottengo quando uso GetLocaleInfo () su Win7 con:

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

Credo che .NET 4.0 è ora utilizzando informazioni internazionali di Windows, invece di basarsi sulle proprie tavole. Tuttavia, nulla cambia più velocemente i dati di cultura. Se pensi che questo sia corretta, si è possibile inviare feedback a connect.microsoft.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top