_create_locale, _wcreate_locale
Tworzy obiekt regionalny.
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parametry
category
Kategoria.locale
Specyfikator ustawień regionalnych.
Wartość zwracana
Jeśli podano prawidłowe locale i category, zwraca określone ustawienia regionalne jako obiekt _locale_t.Bieżące ustawienia regionalne programu nie ulegają zmianie.
Uwagi
_create_locale funkcja pozwala utworzyć obiekt, który reprezentuje niektóre ustawienia specyficzne dla regionu, do użytku w wersjach specyficznych dla ustawień regionalnych wielu funkcji CRT (funkcje z _l sufikem).Zachowanie jest podobne do setlocale, z tym wyjątkiem, że zamiast stosowania ustawień regionalnych określonych dla bieżącego środowiska, ustawienia te są zapisywane w _locale_t strukturze, która jest zwracana._locale_t struktura powinna zostać uwolniona za pomocą _free_locale kiedy nie jest już potrzebny.
_wcreate_locale to wersja znaku dwubajtowego _create_locale; argument locale do _wcreate_locale to ciąg znaku dwubajtowego._wcreate_locale i _create_locale zachowują się identycznie w innych przypadkach.
category Argument określa części zachowania specyficzne dla ustawień regionalnych, których to dotyczy.Flagi używane do category i częściach programu, na które wpływają, są pokazane w poniższej tabeli.
LC_ALL
Wszystkie kategorie, wymienione poniżej.LC_COLLATE
strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll, and wcsxfrm funkcje.LC_CTYPE
Funkcje obsługi znaków (z wyjątkiem isdigit, isxdigit, mbstowcs, i mbtowc, które są bez zmian).LC_MONETARY
Informacje o formatowaniu walutowym zwrócone przez funkcję localeconv.LC_NUMERIC
Znak dziesiętny dla sformatowanych procedur danych wyjściowych (takich jak printf), do procedur konwersji danych i dla niepieniężnych informacji formatowania zwracanych przez localeconv.Oprócz znaku dziesiętnego LC_NUMERIC ustawia separator tysięcy i ciąg sterujący grupowaniem zwracany przez localeconv.LC_TIME
strftime i wcsftime funkcje.
Ta funkcja sprawdza poprawność category i locale parametrów.Jeśli parametr kategorii nie jest jedną z wartości podanych w powyższej tabeli lub locale wynosi NULL, funkcja zwraca NULL.
locale argument jest wskaźnikiem do ciągu, który określa ustawienia regionalne.Aby uzyskać informacje na temat formatu argumentu locale, zobacz Nazwy lokalne, języki i ciągi kraj/region.
locale argument może przyjąć nazwy ustawień regionalnych, ciąg języka, ciąg języka i kod kraju/regionu, stronę kodową lub ciąg języka, kod kraju/regionu i strony kodowej.Zestaw nazw dostępnych ustawień regionalnych, języków, kodów krajów/regionów i stron kodowych zawiera wszystkie opcje, które są obsługiwane przez system Windows API NLS z wyjątkiem stron kodowych, które wymagają więcej niż dwóch bajtów na znak — na przykład, UTF-7 i UTF-8.Jeżeli podasz stronę kodową taką jak UTF-8 lub UTF-7, _create_locale zakończy się niepowodzeniem i zwróci wartość NULL.Zestaw nazw ustawień regionalnych obsługiwanych przez _create_locale są opisane w Nazwy lokalne, języki i ciągi kraj/region.Zestaw ciągów języka i kraju/regionu, obsługiwany przez _create_locale są wymienione w Ciągi języka i Ciągi kraj/region.
Aby uzyskać więcej informacji na temat ustawień regionalnych, zobacz setlocale, _wsetlocale.
Poprzednia nazwa tej funkcji, __create_locale (z dwoma wiodącymi podkreśleniami), została zdeprecjonowana.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> lub <wchar.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność.
Przykład
// 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);
}
Przykładowe dane wyjściowe
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Odpowiednik w programie .NET Framework
Klasa systemu informacji o kulturze globalizacji
Zobacz też
Informacje
Nazwy lokalne, języki i ciągi kraj/region
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
strftime, wcsftime, _strftime_l, _wcsftime_l