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.
Konwertuje time_t wartość czasu na tm strukturę. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _gmtime64_s.
Składnia
struct tm *gmtime( const time_t *sourceTime ); // See note in remarks section about linkage
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );
Parametry
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
Wskaźnik do struktury typu tm. Pola zwracanej struktury przechowują obliczoną wartość argumentu sourceTime w formacie UTC, a nie w czasie lokalnym. Każde z pól struktury ma typ int, w następujący sposób:
| 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. |
Zarówno 32-bitowe, jak i 64-bitowe wersje systemów , , i gmtime używają jednej wspólnej mktime struktury na wątek do konwersjimkgmtime. localtimetm Każde wywołanie jednej z tych funkcji niszczy wynik każdego poprzedniego wywołania. Jeśli sourceTime reprezentuje datę przed północą, 1 stycznia 1970 r., gmtime zwraca wartość NULL. Nie ma zwracanego błędu.
_gmtime64, który używa __time64_t struktury, umożliwia wyrażenia dat do 23:59:59, 31 grudnia 3000, UTC.
_gmtime32 Reprezentują tylko daty do 23:59:59 stycznia 18, 2038, UTC. Północ, 1 stycznia 1970 r., jest dolną granicą zakresu dat dla obu funkcji.
gmtime jest funkcją śródliniową, która oblicza wartość _gmtime64, i time_t jest równoważna __time64_t , chyba że _USE_32BIT_TIME_T jest zdefiniowana. Jeśli musisz wymusić, aby kompilator interpretował time_t jako stary 32-bitowy time_telement , można zdefiniować _USE_32BIT_TIME_Telement , ale powoduje to, że element gmtime jest w kolejce do _gmtime32 elementu i time_t ma być zdefiniowany jako __time32_t. Nie zalecamy używania elementu _USE_32BIT_TIME_T, ponieważ nie jest to dozwolone na platformach 64-bitowych. W każdym razie aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038 r.
Te funkcje weryfikują swoje parametry. Jeśli sourceTime jest wskaźnikiem lub wartość NULL jest ujemna, te funkcje wywołują nieprawidłową procedurę sourceTime obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, funkcje zwracają NULL i ustawiają wartość errnoEINVAL .
Uwagi
Funkcja _gmtime32 dzieli sourceTime wartość i przechowuje ją w statycznie przydzielonej strukturze typu tm, zdefiniowanej w pliku TIME.H. Wartość sourceTime elementu jest zwykle uzyskiwana z wywołania time funkcji.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Uwaga / Notatka
W przypadku korzystania z zestawu Windows SDK w wersji 10.0.26100.6901 i Visual Studio 2026 lub nowszej gmtime nie jest już static inline (połączenie wewnętrzne). Zamiast tego jest inline to (połączenie zewnętrzne).
Aby powrócić do poprzedniego zachowania, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 przed dołączeniem dowolnych nagłówków CRT. Domyślnie _STATIC_INLINE_UCRT_FUNCTIONS jest ustawiona wartość 0.
Ta zmiana zwiększa zgodność UCRT ze standardem C++ i poprawia zgodność z modułami języka C++.
Wymagania
| Procedura | Wymagany nagłówek języka C | Wymagany nagłówek języka C++ |
|---|---|---|
gmtime, , _gmtime32_gmtime64 |
<time.h> |
<ctime> lub <time.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.
#include <time.h>
#include <stdio.h>
int main(void)
{
struct tm *newtime;
__int64 ltime;
char buff[80];
_time64( <ime );
// Obtain coordinated universal time:
newtime = _gmtime64( <ime ); // C4996
// Note: _gmtime64 is deprecated; consider using _gmtime64_s
asctime_s( buff, sizeof(buff), newtime );
printf( "Coordinated universal time is %s\n", buff );
}
Coordinated universal time is Tue Feb 12 23:11:31 2002
Zobacz też
Zarządzanie czasem
asctime, _wasctime
ctime, , _ctime32, _ctime64, _wctime, , _wctime32_wctime64
_ftime, , _ftime32_ftime64
gmtime_s, , _gmtime32_s_gmtime64_s
localtime, , _localtime32_localtime64
_mkgmtime, , _mkgmtime32_mkgmtime64
mktime, , _mktime32_mktime64
time, , _time32_time64