gmtime_s, _gmtime32_s, _gmtime64_s
Konwertuje wartość czasu do struktury.Są to wersje _gmtime32, _gmtime64 z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
errno_t gmtime_s(
struct tm* _tm,
const __time_t* time
);
errno_t _gmtime32_s(
struct tm* _tm,
const __time32_t* time
);
errno_t _gmtime64_s(
struct tm* _tm,
const __time64_t* time
);
Parametry
_tm
Wskaźnik, aby tm struktury.Pola struktury zwracane przytrzymaj oceniana wartość timer argument, zgodnie z czasem UTC, a nie czas lokalny.time
Wskaźnik, aby czas przechowywane.Czas jest reprezentowana jako sekund, jaka upłynęła od północy (00: 00), 1 stycznia 1970 roku skoordynowanego czasu uniwersalnego (UTC).
Wartość zwracana
Zero, jeśli kończy się pomyślnie.Wartość zwracana jest kod błędu, jeśli wystąpi awaria.Kody błędów są zdefiniowane w errno; Aby uzyskać listę tych błędów, zobacz errno.
Warunki błędów
_tm |
time |
Zwrot |
Wartość_tm |
---|---|---|---|
NULL |
wszelkie |
EINVAL |
Nie jest modyfikowany. |
Nie NULL (wskazuje prawidłowy pamięci) |
NULL |
EINVAL |
Wszystkie pola ustawione na wartość -1. |
NieNULL |
< 0 |
EINVAL |
Wszystkie pola ustawione na wartość -1. |
W odniesieniu do pierwszego warunki dwóch błąd nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ustaw te funkcje errno do EINVAL i zwraca EINVAL.
Uwagi
_gmtime32_s Dzieli się funkcja time wartość i zapisuje go w strukturze typu tm, określonych w Time.h.Przekazany adres struktury _tm.Wartość time uzyskuje się zwykle z wywołania time funkcji.
[!UWAGA]
Środowiska docelowego należy spróbować ustalić, czy jest czasu letniego obowiązujące.Biblioteka uruchomieniowa c zakłada Stanów Zjednoczonych zasady wykonywania obliczania czasu letniego.
Każde z pól struktury jest typu int, jak pokazano w poniższej tabeli.
tm_sec
Sekund po minucie (0-59).tm_min
Minut po godzinie (0-59).tm_hour
Godziny od północy (0-23).tm_mday
Dzień miesiąca (1 – 31).tm_mon
Miesiąc (0 – 11; Stycznia = 0).tm_year
Rok (bieżącego roku minus 1900).tm_wday
Dzień tygodnia (0-6; Niedziela = 0).tm_yday
Dzień roku (0 – 365; 1 Stycznia = 0).tm_isdst
Zawsze 0 dla gmtime.
_gmtime64_s, który korzysta z __time64_t struktury, pozwala na daty, wyrażone są do 23: 59: 59, 31 grudnia, 3000, UTC; należy gmtime32_s reprezentują tylko daty poprzez 03: 14: 07 19 stycznia 2038, UTC.Północy, 1 stycznia 1970 r., jest dolną granicą zakres dat dla obu tych funkcji.
gmtime_sfunkcji śródwierszowej, której wynikiem jest _gmtime64_s i time_t jest równoważne z __time64_t.Jeśli trzeba wymusić na kompilatorze interpretowania time_t jako stary 32-bitowe time_t, można zdefiniować _USE_32BIT_TIME_T.Spowoduje to zaawansowana gmtime_s się w rurowy do _gmtime32_s.Nie jest to zalecane, ponieważ aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038, i nie jest dozwolone na platformach 64-bitowych.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
gmtime_s |
<time.h> |
_gmtime32_s |
<time.h> |
_gmtime64_s |
<time.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
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 );
}
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
localtime_s, _localtime32_s, _localtime64_s