_create_locale, _wcreate_locale
Erstellt ein locale-Objekt.
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parameter
category
Kategorie.locale
Gebietsschemaspezifizierer.
Rückgabewert
Wenn gültige locale- und category-Parameter angegeben sind, werden die angegebenen Gebietsschemaeinstellungen als _locale_t-Objekt zurückgegeben. Die aktuellen Gebietsschemaeinstellungen des Programms werden nicht geändert.
Hinweise
Die _create_locale-Funktion ermöglicht das Erstellen eines Objekts, das bestimmte bereichsspezifische Einstellungen darstellt, die in gebietsschemaspezifischen Versionen vieler CRT-Funktionen (Funktionen mit dem Suffix _l) verwendet werden können. Das Verhalten ähnelt setlocale, mit dem Unterschied, dass die angegebenen Gebietsschemaeinstellungen nicht auf die aktuelle Umgebung angewendet werden, sondern in einer _locale_t-Struktur gespeichert werden, die zurückgegeben wird. Die _locale_t-Struktur sollte mit _free_locale freigestellt werden, wenn sie nicht mehr benötigt wird.
_wcreate_locale ist eine Breitzeichenversion von _create_locale. Das locale-Argument für _wcreate_locale ist eine Breitzeichenfolge. _wcreate_locale und _create_locale verhalten sich andernfalls identisch.
Das category-Argument gibt die betroffenen Teile des gebietsschemaspezifischen Verhaltens an. Die für category verwendeten Flags und die betroffenen Teile des Programms sind in der folgenden Tabelle dargestellt.
LC_ALL
Alle unten aufgeführten Kategorien.LC_COLLATE
Die Funktionen strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll und wcsxfrm.LC_CTYPE
Die Funktionen zur Zeichenbehandlung (außer isdigit, isxdigit, mbstowcs und mbtowc, die nicht betroffen sind).LC_MONETARY
Durch die localeconv-Funktion zurückgegebene Informationen zur Währungsformatierung.LC_NUMERIC
Dezimaltrennzeichen für die formatierten Ausgaberoutinen (wie printf), für die Datenkonvertierungsroutinen und für die nicht monetären Formatierungsinformationen, die von localeconv zurückgegeben werden. Neben dem Dezimaltrennzeichen legt LC_NUMERIC das Tausendertrennzeichen und die Zeichenfolge für gruppierte Steuerelemente fest, die von localeconv zurückgegeben werden.LC_TIME
Die Funktionen strftime und wcsftime.
Diese Funktion überprüft den category-Parameter und den locale-Parameter. Wenn der category-Parameter nicht zu den Werten in der vorherigen Tabelle gehört oder wenn localeNULL ist, gibt die Funktion NULL zurück.
Das locale-Argument ist ein Zeiger auf eine Zeichenfolge, die das Gebietsschema angibt. Informationen zum Format des locale-Arguments finden Sie unter Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen.
Das locale-Argument kann einen Gebietsschemanamen annehmen, eine Sprachenzeichenfolge, eine Sprachenzeichenfolge und eine Landeskennzahl, eine Codepage oder eine Sprachenzeichenfolge, eine Landeskennzahl eine und Codepage. Der Satz verfügbarer Gebietsschemanamen, Sprachen, Länder-/Regionscodes und Codepages umfasst alle diejenigen, die von der Windows NLS-API unterstützt werden, ausgenommen Codepages, die mehr als zwei Bytes pro Zeichen benötigen, wie z. B. UTF-7 und UTF-8. Wenn Sie eine Codepage wie UTF-7 oder UTF-8 bereitstellen, schlägt _create_locale fehl und gibt NULL zurück. Der von _create_locale unterstützte Satz von Gebietsschemanamen wird in Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen beschrieben. Der von _create_locale unterstützte Satz von Sprach- und Länder-/Regionszeichenfolgen ist in Sprachzeichenfolgen und Länder-/Regionszeichenfolgen aufgeführt.
Weitere Informationen zu Gebietsschemaeinstellungen finden Sie unter setlocale, _wsetlocale.
Der vorherige Name dieser Funktion, __create_locale (mit zwei führenden Unterstrichen), ist veraltet.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm thetime;
unsigned char str[100];
_locale_t locale;
// Create a locale object representing the German (Switzerland) locale
locale = _create_locale(LC_ALL, "de-CH");
time (<ime);
_gmtime64_s(&thetime, <ime);
// %#x is the long date representation, appropriate to
// the current locale
//
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
printf("_strftime_l failed!\n");
else
printf("In de-CH locale, _strftime_l returns '%s'\n",
str);
_free_locale(locale);
// Create a locale object representing the default C locale
locale = _create_locale(LC_ALL, "C");
time (<ime);
_gmtime64_s(&thetime, <ime);
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
printf("_strftime_l failed!\n");
else
printf("In 'C' locale, _strftime_l returns '%s'\n",
str);
_free_locale(locale);
}
Beispielausgabe
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
.NET Framework-Entsprechung
System::Globalization::CultureInfo-Klasse
Siehe auch
Referenz
Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
strftime, wcsftime, _strftime_l, _wcsftime_l