Udostępnij za pośrednictwem


gmtime_s, , _gmtime32_s_gmtime64_s

Konwertuje wartość czasu na tm strukturę. Te funkcje to wersje programu _gmtime32_gmtime64z 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_telement , 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_Tponieważ 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( &ltime );

   // Obtain coordinated universal time:
   err = _gmtime64_s( &newtime, &ltime );
   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