gmtime_s
, , _gmtime32_s
_gmtime64_s
Konwertuje wartość czasu na tm
strukturę. Te funkcje to wersje programu _gmtime32
_gmtime64
z ulepszeniami zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Składnia
errno_t gmtime_s(
struct tm* tmDest,
const __time_t* sourceTime
);
errno_t _gmtime32_s(
struct tm* tmDest,
const __time32_t* sourceTime
);
errno_t _gmtime64_s(
struct tm* tmDest,
const __time64_t* sourceTime
);
Parametry
tmDest
Wskaźnik do tm
struktury. Pola zwracanej struktury przechowują obliczoną wartość argumentu timer
w formacie UTC, a nie w czasie lokalnym.
sourceTime
Wskaźnik do przechowywanego czasu. Czas jest reprezentowany jako czas, który upłynął od północy (00:00:00), 1 stycznia 1970 r., skoordynowany uniwersalny czas (UTC).
Wartość zwracana
Zero, jeśli się powiedzie. Wartość zwracana jest kodem błędu, jeśli wystąpi błąd. Kody błędów są zdefiniowane w pliku Errno.h
; aby uzyskać listę tych błędów, zobacz errno
.
Warunki błędu
tmDest |
sourceTime |
Powrót | Wartość w tmDest |
---|---|---|---|
NULL |
dowolny | EINVAL |
Niezmodyfikowane. |
Nie NULL (wskazuje prawidłową pamięć) |
NULL |
EINVAL |
Wszystkie pola ustawione na -1. |
Nie NULL |
< 0 | EINVAL |
Wszystkie pola ustawione na -1. |
Dwa pierwsze warunki błędu wywołują nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, te funkcje są ustawione errno
na EINVAL
i zwracają wartość EINVAL
.
Uwagi
Funkcja _gmtime32_s
dzieli sourceTime
wartość i przechowuje ją w strukturze typu tm
, zdefiniowanej w pliku Time.h
. Adres struktury jest przekazywany w pliku tmDest
. Wartość sourceTime
elementu jest często uzyskiwana z wywołania time
funkcji.
Każde z pól struktury ma typ int
, jak pokazano w poniższej tabeli.
Pole | opis |
---|---|
tm_sec |
Sekundy po minucie (0–59). |
tm_min |
Minuty po godzinie (0–59). |
tm_hour |
Godziny od północy (od 0 do 23). |
tm_mday |
Dzień miesiąca (od 1 do 31). |
tm_mon |
Miesiąc (0– 11; Styczeń = 0). |
tm_year |
Rok (bieżący rok minus 1900). |
tm_wday |
Dzień tygodnia (od 0 do 6; Niedziela = 0). |
tm_yday |
Dzień roku (od 0 do 365; 1 stycznia = 0). |
tm_isdst |
Zawsze 0 dla gmtime_s . |
_gmtime64_s
, który używa __time64_t
struktury, umożliwia wyrażenia dat do 23:59:59, 31 grudnia 3000, UTC; natomiast gmtime32_s
reprezentują tylko daty do 23:59:59 stycznia 18, 2038, UTC. Północ, 1 stycznia 1970 r., jest dolną granicą zakresu dat dla obu tych funkcji.
gmtime_s
jest funkcją śródliniową, która oblicza wartość _gmtime64_s
i time_t
jest równoważna funkcji __time64_t
. Jeśli musisz wymusić, aby kompilator interpretował time_t
jako stary 32-bitowy time_t
element , możesz zdefiniować element _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
powoduje gmtime_s
podkreślenie jako _gmtime32_s
. Nie zalecamy , _USE_32BIT_TIME_T
ponieważ aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038 r. i ponieważ nie jest dozwolona na platformach 64-bitowych.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek języka C | Wymagany nagłówek języka C++ |
---|---|---|
gmtime_s , , _gmtime32_s _gmtime64_s |
<time.h> |
<ctime> lub <time.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.
#include <time.h>
#include <stdio.h>
int main( void )
{
struct tm newtime;
__int64 ltime;
char buf[26];
errno_t err;
_time64( <ime );
// Obtain coordinated universal time:
err = _gmtime64_s( &newtime, <ime );
if (err)
{
printf("Invalid Argument to _gmtime64_s.");
}
// Convert to an ASCII representation
err = asctime_s(buf, 26, &newtime);
if (err)
{
printf("Invalid Argument to asctime_s.");
}
printf( "Coordinated universal time is %s\n",
buf );
}
Coordinated universal time is Fri Apr 25 20:12:33 2003
Zobacz też
Zarządzanie czasem
asctime_s
, _wasctime_s
ctime
, , _ctime32
, _ctime64
, _wctime
, , _wctime32
_wctime64
_ftime
, , _ftime32
_ftime64
gmtime
, , _gmtime32
_gmtime64
localtime_s
, , _localtime32_s
_localtime64_s
_mkgmtime
, , _mkgmtime32
_mkgmtime64
mktime
, , _mktime32
_mktime64
time
, , _time32
_time64