Die Sache mit der Zeit

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.

image

Dabei sind die Setting im Betriebsystem auf Deutsch eingestellt.

image

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")

image

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

image

Wie letztendlich formatiert wird, geben die Region Einstellungen vor, Mit diesem untypischen Format sieht das ShortDate dann auch so aus

image

Ähnliche Probleme gibt es auch bei System.Uri und Windows.Uri da die Typen nicht ident sind.

Kommentare sind geschlossen