Die Sache mit der Zeit

by Hannes Preishuber25. Juli 2012 22:19

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.

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de

Tags:

.Net | WinRT | Windows

Kommentar schreiben

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading

About the author

Something about the author

Month List

Page List