Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Načte řetězcovou reprezentaci znaku názvu časového pásma nebo názvu zóny DST (Daylight Standard Time).
Syntaxe
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Parametry
pReturnValue
Délka timeZoneName řetězce zahrnující NULL ukončovací znak.
timeZoneName
Adresa znakového řetězce pro reprezentaci názvu časového pásma nebo názvu letního standardního časového pásma (DST) v závislosti na index.
sizeInBytes
Velikost znakového timeZoneName řetězce v bajtech.
index
Jeden index ze dvou názvů časových pásem, které se mají načíst.
index |
Obsah timeZoneName |
timeZoneName výchozí hodnota |
|---|---|---|
| 0 | Název časového pásma | "PST" |
| 0 | Název denního standardního časového pásma | "PDT" |
| > 1 nebo < 0 | errno nastavit na EINVAL |
neupraveno |
Pokud se explicitně neaktualizuje během běhu, "PST" vrátí se pro standardní časové pásmo a "PDT" pro časové pásmo denního světla. Další informace najdete v poznámkách.
Řetězec časového pásma není zaručen stejný mezi verzemi operačního systému. Oficiální názvy časových pásem se můžou měnit.
Vrácená hodnota
Nula v případě úspěchu, jinak errno hodnota typu.
Pokud je nebo timeZoneName je NULLnula nebo sizeInBytes je menší než nula (ale ne obojí), vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tato funkce nastaví errno EINVAL a vrátí EINVAL.
Chybové podmínky
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Vrácená hodnota | Obsah timeZoneName |
|---|---|---|---|---|---|
| velikost názvu TZ | NULL |
0 | 0 nebo 1 | 0 | neupraveno |
| velikost názvu TZ | jakékoliv | > 0 | 0 nebo 1 | 0 | Název TZ |
| neupraveno | NULL |
> 0 | jakékoliv | EINVAL |
neupraveno |
| neupraveno | jakékoliv | žádný | jakékoliv | EINVAL |
neupraveno |
| neupraveno | jakékoliv | > 0 | > 1 | EINVAL |
neupraveno |
Poznámky
Funkce _get_tzname načte znakovou řetězcovou reprezentaci aktuálního názvu časového pásma nebo názvu letního standardního časového pásma (DST) do adresy timeZoneName v závislosti na index hodnotě spolu s velikostí řetězce v pReturnValue. Pokud timeZoneName je a sizeInBytes je NULL nula, je velikost řetězce v bajtech potřebná k uložení jak zadaného časového pásma, tak ukončení NULL, vrácena v pReturnValue.
Hodnoty index musí být buď 0 pro standardní časové pásmo, nebo 1 pro letní časové pásmo; všechny ostatní hodnoty mají nedeterminované výsledky.
Ve výchozím nastavení "PST" se vrátí pro standardní časové pásmo a "PDT" pro denní standardní časové pásmo. Název časového pásma true se aktualizuje při prvním potřebě funkcí, která vyžaduje informace o časovém pásmu, například strftime, , ftime, ftime_s, mktimelocaltimea další. Pokud funkce, která nevyžaduje informace o časovém pásmu, není volána před voláním _get_tzname, vrátí se výchozí hodnoty, pokud je nejprve explicitně neaktualizujete pomocí některé z uvedených funkcí nebo voláním tzset. TZ Pokud je proměnná prostředí nastavená, má přednost před názvem časového pásma hlášeným operačním systémem. I v tomto případě musí být jedna z výše uvedených funkcí volána před _get_tzname zavolání nebo bude vrácena výchozí hodnota časového pásma. Další informace o TZ proměnné prostředí a CRT naleznete v tématu _tzset.
Upozorňující
Řetězec časového pásma není zaručen stejný mezi verzemi operačního systému. Oficiální názvy časových pásem se můžou měnit.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Příklad
Tato ukázková volání _get_tzname pro získání požadované velikosti vyrovnávací paměti pro zobrazení aktuálního názvu standardního časového pásma Daylight, přidělí vyrovnávací paměť této velikosti, zavolá _get_tzname znovu pro načtení názvu do vyrovnávací paměti a vytiskne ho do konzoly.
Volá také _tzset() , aby operační systém před voláním _get_tzname()aktualizoval informace o časovém pásmu . V opačném případě se použijí výchozí hodnoty.
// crt_get_tzname.c
// Compile by using: cl /W4 crt_get_tzname.c
#include <stdio.h>
#include <time.h>
#include <malloc.h>
enum TZindex {
STD,
DST
};
int main()
{
size_t tznameSize = 0;
char * tznameBuffer = NULL;
_tzset(); // Update the time zone information
// Get the size of buffer required to hold DST time zone name
if (_get_tzname(&tznameSize, NULL, 0, DST))
{
return 1; // Return an error value if it failed
}
// Allocate a buffer for the name
if (NULL == (tznameBuffer = (char *)(malloc(tznameSize))))
{
return 2; // Return an error value if it failed
}
// Load the name in the buffer
if (_get_tzname(&tznameSize, tznameBuffer, tznameSize, DST))
{
return 3; // Return an error value if it failed
}
printf_s("The current Daylight standard time zone name is %s.\n", tznameBuffer);
return 0;
}
Výstup
The current Daylight standard time zone name is Pacific Daylight Time.
Požadavky
| Rutina | Požadovaný hlavičkový soubor |
|---|---|
_get_tzname |
<time.h> |
Další informace naleznete v tématu Kompatibilita.
Viz také
Správa času
errno, _doserrno, _sys_errlista _sys_nerr
_get_daylight
_get_dstbias
_get_timezone