Globalisieren von Datums-, Uhrzeit- und ZahlenformatenGlobalize your date/time/number formats

Entwerfen Sie Ihre APP so, dass Sie Global bereit ist, indem Sie Datumsangaben, Uhrzeiten, Zahlen, Telefonnummern und Währungen entsprechend formatieren.Design your app to be global-ready by appropriately formatting dates, times, numbers, phone numbers, and currencies. Anschließend können Sie Ihre APP später für weitere Kulturen, Regionen und Sprachen auf dem globalen Markt anpassen.You'll then be able later to adapt your app for additional cultures, regions, and languages in the global market.

EinführungIntroduction

Wenn Sie bei der Erstellung Ihrer APP in großem Umfang als eine Sprache und eine Kultur betrachten, haben Sie weniger (wenn überhaupt) unerwartete Probleme, wenn Ihre APP in neue Märkte wächst.When creating your app, if you think more broadly than a single language and culture then you'll have fewer (if any) unexpected issues when your app grows into new markets. Datumsangaben, Uhrzeiten, Zahlen, Kalender, Währungen, Telefonnummern, Maßeinheiten und Papierformate sind Beispiele für Elemente, die in den verschiedenen Kulturen oder Sprachen anders angezeigt werden können.For example, dates, times, numbers, calendars, currency, telephone numbers, units of measurement, and paper sizes are all items that can be displayed differently in different cultures or languages.

Für unterschiedliche Regionen und Kulturen werden verschiedene Datums-und Uhrzeit Formate verwendet.Different regions and cultures use different date and time formats. Hierzu gehören Konventionen für die Reihenfolge von Tag und Monat im Datum, für die Trennung von Stunden und Minuten in der Zeit und sogar für das, was als Trennzeichen verwendet wird.These include conventions for the order of day and month in the date, for the separation of hours and minutes in the time, and even for what punctuation is used as a separator. Außerdem können Datumsangaben in verschiedenen langen Formaten ("Mittwoch, am 28. März 2012") oder in kurzen Formaten ("3/28/12") angezeigt werden, die sich zwischen Kulturen unterscheiden.In addition, dates may be displayed in various long formats ("Wednesday, March 28, 2012") or short formats ("3/28/12"), which vary across cultures. Und natürlich unterscheiden sich die Namen und Abkürzungen für die Wochentage und Monate des Jahres zwischen den Sprachen.And, of course, the names and abbreviations for the days of the week and months of the year differ between languages.

Sie können eine Vorschau der Formate verwenden, die für verschiedene Sprachen verwendet werden.You can preview the formats used for different languages. Wechseln Sie zu Einstellungen > Zeit & sprach > Region & Sprache, und klicken Sie auf zusätzliche Datums-, Uhrzeit-und & regionale Einstellungen > Ändern von Datums-, Uhrzeit-oder Zahlenformaten.Go to Settings > Time & Language > Region & language, and click Additional date, time, & regional settings > Change date, time, or number formats. Wählen Sie auf der Registerkarte Formate eine Sprache aus der Dropdown-Dropdown- Datei aus, und zeigen Sie die Formate in den BeispielenanOn the Formats tab, select a language from the Format drop-down and preview the formats in Examples.

In diesem Thema werden die Begriffe "Benutzerprofil-Sprachliste", "App-Manifest-Sprachliste" und "App-Lauf Zeit Sprachliste" verwendet.This topic uses the terms "user profile language list", "app manifest language list", and "app runtime language list". Ausführliche Informationen dazu, was diese Begriffe bedeuten und wie Sie auf ihre Werte zugreifen, finden Sie Untergrund Legendes zu Benutzerprofil Sprachen und App-Manifest-Sprachen.For details on exactly what those terms mean and how to access their values, see Understand user profile languages and app manifest languages.

Formatieren von Datums-und Uhrzeitangaben für die Anwendungs-RuntimeFormat dates and times for the app runtime language list

Wenn Sie zulassen möchten, dass Benutzer ein Datum auswählen oder eine Uhrzeit auswählen, verwenden Sie die Standard Steuer Elemente für Kalender, Datum und Uhrzeit.If you need to allow users to choose a date, or to select a time, then use the standard calendar, date, and time controls. Diese verwenden automatisch das beste Datums-und Uhrzeit Format für die Sprachliste der APP-Laufzeit.These automatically use the best date and time format for the app runtime language list.

Wenn Sie Datumsangaben oder Uhrzeiten Selbstanzeigen müssen, können Sie die datetimeformatter -Klasse verwenden.If you need to display dates or times yourself then you can use the DateTimeFormatter class. Standardmäßig verwendet datetimeformatter automatisch das beste Datums-und Uhrzeit Format für die Sprachliste der APP-Laufzeit.By default, DateTimeFormatter automatically uses the best date and time format for the app runtime language list. Der folgende Code formatiert einen gegebenen DateTime -Wert in der besten Weise für diese Liste.So, the code below formats a given DateTime in the best way for that list. Nehmen Sie beispielsweise an, dass Ihre APP-Manifest-Sprachliste Englisch (USA) enthält. Dies ist auch die Standardeinstellung und Deutsch (Deutschland).As an example, assume that your app manifest language list includes English (United States), which is also your default, and German (Germany). Wenn das aktuelle Datum 6 2017 ist und die Benutzerprofil-Sprachliste zuerst Deutsch (Deutschland) enthält, gibt das Formatierer "06.11.2017" an.If the current date is Nov 6 2017 and the user profile language list contains German (Germany) first, then the formatter gives "06.11.2017". Wenn die Benutzerprofil-Sprachliste zuerst Englisch (USA) enthält (oder wenn Sie weder Englisch noch Deutsch enthält), gibt der Formatierer "11/6/2017" (da "en-US" übereinstimmt oder als Standard verwendet wird).If the user profile language list contains English (United States) first (or if it contains neither English nor German), then the formatter gives "11/6/2017" (since "en-US" matches, or is used as the default).

    // Use the DateTimeFormatter class to display dates and times using basic formatters.

    var shortDateFormatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate");
    var shortTimeFormatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shorttime");

    var dateTimeToFormat = DateTime.Now;

    var shortDate = shortDateFormatter.Format(dateTimeToFormat);
    var shortTime = shortTimeFormatter.Format(dateTimeToFormat);

    var results = "Short Date: " + shortDate + "\n" +
                  "Short Time: " + shortTime;

Sie können den obigen Code auf Ihrem eigenen PC wie folgt testen.You can test the code above on your own PC like this.

Formatieren von Datums-und Uhrzeitwerten für die Benutzerprofil SpracheFormat dates and times for the user profile language list

Beachten Sie, dass datetimeformatter standardmäßig mit der Sprache der APP-Lauf Zeit Sprache übereinstimmt.Remember that, by default, DateTimeFormatter matches the app runtime language list. Wenn Sie z. b. Zeichen folgen wie "date is < Date > " anzeigen, entspricht die Sprache dem Datumsformat.That way, if you display strings such as "The date is <date>", then the language will match the date format.

Wenn Sie aus irgendeinem Grund Datums-und/oder Uhrzeiten nur entsprechend der Benutzerprofil-Sprachliste formatieren möchten, können Sie dies mithilfe von Code wie dem folgenden Beispiel tun.If for whatever reason you want to format dates and/or times only according to the user profile language list, then you can do that using code like the example below. Wenn Sie dies jedoch tun, wissen Sie, dass der Benutzer eine Sprache auswählen kann, für die Ihre APP nicht übersetzte Zeichen folgen verfügt.But if you do so then understand that the user can choose a language for which your app doesn't have translated strings. Wenn Ihre APP z. b. nicht in Deutsch (Deutschland) lokalisiert ist, aber der Benutzer diese als bevorzugte Sprache auswählt, kann dies dazu führen, dass ganz ungerade aussehende Zeichen folgen wie "das Datum ist 06.11.2017" angezeigt werden.For example, if your app is not localized into German (Germany), but the user chooses that as their preferred language, then that could result in the display of arguably odd-looking strings such as "The date is 06.11.2017".

    // Use the DateTimeFormatter class to display dates and times using basic formatters.

    var userLanguages = Windows.System.UserProfile.GlobalizationPreferences.Languages;

    var shortDateFormatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate", userLanguages);

    var results = "Short Date: " + shortDateFormatter.Format(DateTime.Now);

Formatieren Sie Zahlen und Währungen entsprechendFormat numbers and currencies appropriately

In verschiedenen Kulturen werden Zahlen unterschiedlich formatiert.Different cultures format numbers differently. Formatunterschiede können sich auf Folgendes beziehen: wie viele Dezimalziffern angezeigt werden, welche Zeichen als Dezimaltrennzeichen verwendet werden und welches Währungssymbol verwendet wird.Format differences may include how many decimal digits to display, what characters to use as decimal separators, and what currency symbol to use. Verwenden Sie Klassen im Namespace " nummeriformatierung ", um Dezimal-, Prozent-oder perpromille Zahlen sowie Währungen anzuzeigen.Use classes in the NumberFormatting namespace to display decimal, percent, or permille numbers, and currencies. In den meisten Fällen möchten Sie, dass diese Formatierungs Klassen das beste Format für das Benutzerprofil verwenden.Most of the time, you will want these formatter classes to use the best format for the user profile. Sie können jedoch die Formatierer verwenden, um eine Währung für eine beliebige Region oder ein beliebiges Format anzuzeigen.But you may use the formatters to display a currency for any region or format.

Dieses Beispiel zeigt, wie Währungen sowohl für das Benutzerprofil als auch für ein bestimmtes bestimmtes Währungssystem angezeigt werden.This example shows how to display currencies both per the user profile, and for a specific given currency system.

    // This scenario uses the CurrencyFormatter class to format a number as a currency.

    var userCurrency = Windows.System.UserProfile.GlobalizationPreferences.Currencies[0];

    var valueToBeFormatted = 12345.67;

    var userCurrencyFormatter = new Windows.Globalization.NumberFormatting.CurrencyFormatter(userCurrency);
    var userCurrencyValue = userCurrencyFormatter.Format(valueToBeFormatted);

    // Create a formatter initialized to a specific currency,
    // in this case US Dollar (specified as an ISO 4217 code) 
    // but with the default number formatting for the current user.
    var currencyFormatUSD = new Windows.Globalization.NumberFormatting.CurrencyFormatter("USD");
    var currencyValueUSD = currencyFormatUSD.Format(valueToBeFormatted);

    // Create a formatter initialized to a specific currency.
    // In this case it's the Euro with the default number formatting for France.
    var currencyFormatEuroFR = new Windows.Globalization.NumberFormatting.CurrencyFormatter("EUR", new[] { "fr-FR" }, "FR");
    var currencyValueEuroFR = currencyFormatEuroFR.Format(valueToBeFormatted);

    // Results for display.
    var results = "Fixed number (" + valueToBeFormatted + ")\n" +
                    "With user's default currency: " + userCurrencyValue + "\n" +
                    "Formatted US Dollar: " + currencyValueUSD + "\n" +
                    "Formatted Euro (fr-FR defaults): " + currencyValueEuroFR;

Sie können den obigen Code auf Ihrem eigenen PC testen, indem Sie das Land oder die Region in der Einstellungs > Zeit & sprach > Region & Sprachen > Land oder der Regionändern.You can test the code above on your own PC by changing the country or region in Settings > Time & Language > Region & language > Country or region. Wählen Sie ein Land oder eine Region (vielleicht Island) aus, und führen Sie den Code erneut aus.Choose a country or region (perhaps Iceland), and run the code again.

Verwenden Sie einen kulturspezifischen KalenderUse a culturally appropriate calendar

Der Kalender ist für verschiedene Regionen und Sprachen unterschiedlich.The calendar differs across regions and languages. Der gregorianische Kalender ist nicht der Standardkalender für alle Regionen.The Gregorian calendar is not the default for every region. Benutzer in einigen Regionen können alternative Kalender auswählen, z. b. den Kalender des japanischen Zeitraums oder arabische Mondkalender.Users in some regions may choose alternate calendars, such as the Japanese era calendar, or Arabic lunar calendars. Datums-und Uhrzeitangaben im Kalender sind auch für unterschiedliche Zeitzonen und Sommerzeit empfindlich.Dates and times on the calendar are also sensitive to different time zones and daylight-saving time.

Um sicherzustellen, dass das bevorzugte Kalender Format verwendet wird, können Sie die Standard Steuer Elemente für Kalender, Datum und Uhrzeitverwenden.To ensure that the preferred calendar format is used, you can use the standard calendar, date, and time controls. Bei komplexeren Szenarien, in denen die direkte Verwendung von Vorgängen für Kalenderdaten erforderlich ist, stellt Windows. Globalization eine Kalender Klasse bereit, die eine entsprechende Kalenderdarstellung für die angegebene Kultur, Region und den angegebenen Kalendertyp bereitstellt.For more complex scenarios, where working directly with operations on calendar dates may be required, Windows.Globalization provides a Calendar class that gives an appropriate calendar representation for the given culture, region, and calendar type.

Formatieren Sie Telefonnummern entsprechendFormat phone numbers appropriately

Telefonnummern werden in verschiedenen Regionen unterschiedlich formatiert.Phone numbers are formatted differently across regions. Die Anzahl der Ziffern, die Art und Weise, wie die Ziffern gruppiert werden, und die Bedeutung bestimmter Teile der Telefonnummer variieren zwischen den Ländern.The number of digits, how the digits are grouped, and the significance of certain parts of the phone number vary between countries. Ab Windows 10, Version 1607, können Sie Klassen im phonenumberformatierung -Namespace verwenden, um die Telefonnummern für den aktuellen Bereich entsprechend zu formatieren.Starting in Windows 10, version 1607, you can use classes in the PhoneNumberFormatting namespace to format phone numbers appropriately for the current region.

Phonenumberinfo analysiert eine Zeichenfolge mit Ziffern und ermöglicht Ihnen Folgendes: bestimmen Sie, ob die Ziffern eine gültige Telefonnummer in der aktuellen Region sind. Vergleicht zwei Zahlen auf Gleichheit. und, um die verschiedenen funktionalen Teile der Telefonnummer zu extrahieren, z. b. Ländercode oder geografischer flächencode.PhoneNumberInfo parses a string of digits and allows you to: determine whether the digits are a valid phone number in the current region; compare two numbers for equality; and to extract the different functional parts of the phone number, such as country code or geographical area code.

Phonenumberformatter formatiert eine Zeichenfolge oder eine phonenumberinfo für die Anzeige, auch wenn die Zeichenfolge eine partielle Telefonnummer darstellt.PhoneNumberFormatter formats a string of digits or a PhoneNumberInfo for display, even when the string of digits represents a partial phone number. Mit dieser partiellen Zahlen Formatierung können Sie eine Zahl formatieren, wenn ein Benutzer die Zahl eingibt.You can use this partial number formatting to format a number as a user is entering the number.

Das folgende Beispiel zeigt, wie Sie phonenumberformatter verwenden, um eine Telefonnummer zu formatieren, während Sie eingegeben wird.The example below shows how to use PhoneNumberFormatter to format a phone number as it is being entered. Jedes Mal, wenn Text in einem Textfeld mit dem Namen "phonenumberinputtextbox" geändert wird, wird der Inhalt des Textfelds mit dem aktuellen Standardbereich formatiert und in einem TextBlock mit dem Namen "phonenumberoutputtextblock" angezeigt.Each time text changes in a TextBox named phoneNumberInputTextBox, the contents of the text box are formatted using the current default region and displayed in a TextBlock named phoneNumberOutputTextBlock. Zu Demonstrationszwecken wird die Zeichenfolge auch mit der Region für Neuseeland formatiert und in einem TextBlock mit dem Namen "phonenumberoutputtextblocknz" angezeigt.For demonstration purposes, the string is also formatted using the region for New Zealand, and displayed in a TextBlock named phoneNumberOutputTextBlockNZ.

    using Windows.Globalization.PhoneNumberFormatting;

    PhoneNumberFormatter currentFormatter, NZFormatter;

    public MainPage()
    {
        this.InitializeComponent();

        // Use the default formatter for the current region
        this.currentFormatter = new PhoneNumberFormatter();

        // Create an explicit formatter for New Zealand. 
        PhoneNumberFormatter.TryCreate("NZ", out this.NZFormatter);
    }

    private void phoneNumberInputTextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        // Format for the default region.
        this.phoneNumberOutputTextBlock.Text = currentFormatter.FormatPartialString(this.phoneNumberInputTextBox.Text);

        // If the NZFormatter was created successfully, format the partial string for the NZ TextBlock.
        if(this.NZFormatter != null)
        {
            this.phoneNumberOutputTextBlockNZ.Text = this.NZFormatter.FormatPartialString(this.phoneNumberInputTextBox.Text);
        }
    }

Sie können den obigen Code auf Ihrem eigenen PC testen, indem Sie das Land oder die Region in der Einstellungs > Zeit & sprach > Region & Sprachen > Land oder der Regionändern.You can test the code above on your own PC by changing the country or region in Settings > Time & Language > Region & language > Country or region. Wählen Sie ein Land oder eine Region (vielleicht Neuseeland, um zu bestätigen, dass die Formate entsprechen), und führen Sie den Code erneut aus.Choose a country or region (perhaps New Zealand to confirm that the formats match), and run the code again. Für Testdaten können Sie eine Websuche nach der Telefonnummer eines Unternehmens in Neuseeland durchführen.For test data, you can do a web search for the phone number of a business in New Zealand.

Benutzersprache und Kultur EinstellungenThe user's language and cultural preferences

Für Szenarien, in denen Sie unterschiedliche Funktionen bereitstellen möchten, die ausschließlich auf der Sprache, der Region oder den kulturellen Einstellungen des Benutzers basieren, bietet Windows Ihnen eine Möglichkeit, überWindows.System auf diese Einstellungen zuzugreifen . User Profile. globalizationpreferences.For scenarios where you wish to provide different functionality based solely on the user's language, region, or cultural preferences, Windows gives you a way to access those preferences, through Windows.System.UserProfile.GlobalizationPreferences. Verwenden Sie bei Bedarf die GlobalizationPreferences-Klasse, um den Wert der aktuellen Region des Benutzers sowie die bevorzugten Sprachen, Währungen usw. zu ermitteln.When needed, use the GlobalizationPreferences class to get the value of the user's current geographic region, preferred languages, preferred currencies, and so on. Beachten Sie jedoch Folgendes: Wenn die Zeichen folgen/Images Ihrer APP nicht für die bevorzugte Sprache des Benutzers lokalisiert sind, entsprechen Datums-und Uhrzeitangaben und andere Daten, die für diese bevorzugte Sprache formatiert sind, nicht den angezeigten Zeichen folgen.But remember that if your app's strings/images aren't localized for the user's preferred language then dates and times and other data formatted for that preferred language won't match the strings that you display.

Wichtige APIsImportant APIs

BeispieleSamples