Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pobiera ciąg znaków reprezentujący nazwę strefy czasowej lub nazwę strefy czasowej (DST).
Składnia
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Parametry
pReturnValue
Długość ciągu obejmująca timeZoneName NULL terminator.
timeZoneName
Adres ciągu znaków dla reprezentacji nazwy strefy czasowej lub nazwy strefy czasowej (DST), w zależności od index.
sizeInBytes
Rozmiar timeZoneName ciągu znaków w bajtach.
index
Jedna index z dwóch nazw stref czasowych do pobrania.
index |
Zawartość timeZoneName |
timeZoneName wartość domyślna |
|---|---|---|
| 0 | Nazwa strefy czasowej | "PST" |
| 1 | Nazwa strefy czasowej (czas letni) | "PDT" |
| > 1 lub < 0 | errno ustaw wartość na EINVAL |
niezmodyfikowane |
O ile nie zostanie jawnie zaktualizowana podczas wykonywania, "PST" zostanie zwrócona dla standardowej strefy czasowej i "PDT" strefy czasowej (standardowa). Aby uzyskać więcej informacji, zobacz uwagi.
Ciąg strefy czasowej nie ma gwarancji, że jest taki sam między wersjami systemu operacyjnego. Oficjalne nazwy stref czasowych mogą i mogą ulec zmianie.
Wartość zwracana
Zero w przypadku powodzenia errno , w przeciwnym razie wartość typu.
Jeśli wartość timeZoneName to NULL, lub sizeInBytes jest równa zero lub jest mniejsza niż zero (ale nie obie), wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, ta funkcja ustawia errno wartość EINVAL i zwraca wartość EINVAL.
Warunki błędu
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Wartość zwracana | Zawartość timeZoneName |
|---|---|---|---|---|---|
| rozmiar nazwy TZ | NULL |
0 | 0 lub 1 | 0 | niezmodyfikowane |
| rozmiar nazwy TZ | dowolny | > 0 | 0 lub 1 | 0 | Nazwatz |
| niezmodyfikowane | NULL |
> 0 | dowolny | EINVAL |
niezmodyfikowane |
| niezmodyfikowane | dowolny | zero | dowolny | EINVAL |
niezmodyfikowane |
| niezmodyfikowane | dowolny | > 0 | > 1 | EINVAL |
niezmodyfikowane |
Uwagi
Funkcja _get_tzname pobiera ciąg znaków reprezentujący bieżącą nazwę strefy czasowej lub nazwę strefy czasowej (DST) w adresie timeZoneName w zależności od index wartości wraz z rozmiarem ciągu w pReturnValue. Jeśli timeZoneName wartość jest NULL równa zerosizeInBytes, rozmiar ciągu w bajtach wymaganych do przechowywania zarówno określonej strefy czasowej, jak i zakończenia NULL, jest zwracany w .pReturnValue
Wartości index muszą być równe 0 dla standardowej strefy czasowej lub 1 dla strefy czasowej (czas standardowy) — wszystkie inne wartości mają nieokreślone wyniki.
Domyślnie "PST" jest zwracana dla standardowej strefy czasowej i "PDT" strefy czasowej (czas letni). Prawdziwa nazwa strefy czasowej jest aktualizowana po raz pierwszy przez funkcję, która wymaga informacji o strefie czasowej, takich jak strftime, ftime, ftime_smktime, , localtimei innych. Jeśli funkcja, która nie wymaga informacji o strefie czasowej, nie jest wywoływana przed wywołaniem _get_tzname, zwracane są wartości domyślne, chyba że najpierw jawnie zaktualizujesz je przy użyciu jednej z wymienionych funkcji lub przez wywołanie metody tzset. Ponadto jeśli zmienna TZ środowiskowa jest ustawiona, ma pierwszeństwo przed nazwą strefy czasowej zgłaszanej przez system operacyjny. Nawet w takim przypadku należy wywołać jedną z funkcji wymienionych powyżej przed _get_tzname wywołaniami lub zostanie zwrócona domyślna wartość strefy czasowej. Aby uzyskać więcej informacji na temat zmiennej środowiskowej TZ i CRT, zobacz _tzset.
Ostrzeżenie
Ciąg strefy czasowej nie ma gwarancji, że jest taki sam między wersjami systemu operacyjnego. Oficjalne nazwy stref czasowych mogą i mogą ulec zmianie.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Przykład
To przykładowe wywołania _get_tzname umożliwiające pobranie wymaganego rozmiaru buforu w celu wyświetlenia bieżącej standardowej nazwy strefy czasowej (czas letni), przydziela bufor tego rozmiaru, wywołuje _get_tzname ponownie nazwę w buforze i drukuje ją do konsoli.
Wywołuje również polecenie _tzset() , aby system operacyjny zaktualizował informacje o strefie czasowej przed wywołaniem metody _get_tzname(). W przeciwnym razie są używane wartości domyślne.
// 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;
}
Wyjście
The current Daylight standard time zone name is Pacific Daylight Time.
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
_get_tzname |
<time.h> |
Aby uzyskać więcej informacji, zobacz Zgodność.
Zobacz też
Zarządzanie czasem
errno, _doserrno, _sys_errlisti _sys_nerr
_get_daylight
_get_dstbias
_get_timezone