Ich dachte, das wird eine sehr einfache Frage, aber ich kann es nicht lösen. In meiner App möchte ich die aktuelle Zeit abhängig von der Regionseinstellung des Benutzers anzeigen. Wenn mein Telefon normalerweise 17:48 anzeigt, möchte ich, dass meine App es in diesem Format anzeigt. Wenn es 17.48 Uhr anzeigt, sollte die gleiche Regel für meine App gelten. Aber was auch immer ich mache, es zeigt nur die am/pm-Version. Ich benutze das System. DateTime Klasse. Ich sah ein paar Lösungen, wo ich das tun kann (die Zeit auf österreichische Zeitformat einstellen):Anzeige der aktuellen Zeit in Abhängigkeit von der Region für Windows 10 UWP App
string time = DateTime.Now.ToString("t", de-AT);
und es funktioniert! Ich möchte es jedoch nicht manuell einstellen, sondern das Regionsformat abhängig von den Telefoneinstellungen des Benutzers verwenden. Ich habe versucht, immer die Sprache Ländernamen mit CultureInfo.CurrentCulture wie folgt aus:
string time = DateTime.Now.ToString("t", CultureInfo.CurrentCulture.Name);
Was nicht funktioniert, weil CultureInfo.CurrentCulture.Name immer en-US zeigt, obwohl mein Telefon österreichische gesetzt Region. Wenn ich die GeographicRegion Klasse und druck:
GeographicRegion userRegion = new GeographicRegion();
string region = userRegion.CodeTwoLetter;
Ich werde AT bekommen als String und "Österreich" (= Österreich), wenn userRegion.NativeName Druck;
Gibt es eine Möglichkeit, dies zu tun?
CultureInfo.CurrentCulture sollte die regionalen Einstellungen des Telefonbenutzers enthalten, aber aus irgendeinem Grund wird es in einer UWP-App auf die von Ihrer App unterstützte (Standard) Sprache eingestellt. Wenn Sie Unterstützung für de-AT hinzufügen, indem Sie Resource Language = "de-AT" in Ihrem package.appxmanifest setzen und die Benutzer-Telefonsprache de-AT ist, erhalten Sie de-AT in CurrentCulture. Die Spracheinstellung des Benutzers kann jedoch von der Regionseinstellung des Benutzers abweichen. Dies hilft nicht viel. –