Windows 8 ist fast fertig. Es sind nur mehr ganz wenige Tage bis zur RTM. Und doch liefert Windows 8 eine seltsame Zeit bzw. Formatierung wenn man Date.Now einer Textbox zuweist.
Dabei sind die Setting im Betriebsystem auf Deutsch eingestellt.
Der WinRT datetime Typ besitzt keine Culture Informationen und kann das deswegen auch nach Projektion auf .NET DateTime nicht umsetzen.
Bei DateTimeOffset wird daraus Windows.Foundation.DateTime und da fehlt selbst die Zeitzone.
Folgenden Code kann man als Workaround betrachten um die Region manuell zu setzen.
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "de-DE"
textblock1.Text = Date.Now.ToString("d")
Jedenfalls anders als man das aus .NET kennt (Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US"))
Man kann auch die aktuellen Einstellungen auslesen mit Windows.Globalization.DateTimeFormatting.DateTimeFormatter.ShortDate
Wie letztendlich formatiert wird, geben die Region Einstellungen vor, Mit diesem untypischen Format sieht das ShortDate dann auch so aus
Ähnliche Probleme gibt es auch bei System.Uri und Windows.Uri da die Typen nicht ident sind.