Bildirim
struct tm* gmtime(const time_t *timer);
struct tm* gmtime_s(const time_t *restrict timer, struct tm *restrict result); (C11)
Açıklama
Timer parametresi ile gösterilen time_t zaman değerini kullanarak, tm zaman yapısı içindeki yıl, ay, gün ve saat bilgilerini Evrensel Saat (UTC) veya GMT saat dilimine karşılık gelen zamanı temsil eden değerlerle doldurur.
gmtime_s() fonksiyonu ayrıca, sonucu yüklemek için result parametresi ile gösterilen yapıyı kullanır. Timer veya result parametre değeri NULL bir işaretçi ise, yüklenmiş olan kısıtlayıcı işlem fonksiyonu çağrılır.
Parametreler
timer: Çevrilecek olan time_t zaman değerini gösteren bir işaretçidir.
result: Sonuçları yüklemek için kullanılan tm yapı değişkenini gösteren bir işaretçidir.
Dönüş değeri
gmtime() fonksiyonu başarı durumunda tm yapı değişkenini gösteren bir işaretçi, hata durumunda ise NULL bir işaretçi geri döndürür.
struct tm { int tm_sec; /* Saniye: 0-59 */ int tm_min; /* Dakika: 0-59 */ int tm_hour; /* Saat : 0-23 */ int tm_mday; /* Ayın günü: 1-31 */ int tm_mon; /* Aylar Ocak'tan itibaren: 0-11 */ int tm_year; /* Yıllar 1900'den itibaren */ int tm_wday; /* Hafta gün sayısı Pazar'dan itibaren (0-6) */ int tm_yday; /* Yıl gün sayısı 1 Ocak'tan itibaren : 0-365 */ int tm_isdst; /* +1 Günışığından Faydalanma Zamanı, 0 GFZ yok, -1 Bilgi yok */ };
gmtime_s() fonksiyonu başarı durumunda result parametresi ile gösterilen işaretçiyi, hata durumunda ise NULL bir işaretçi geri döndürür.
Örnek
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t time_1970;
struct tm *time_detay;
time_1970 = time(NULL);
/* 1 Ocak 1970'den bugüne saniye olarak geçen zaman */
printf("1 Ocak 1970'den bugüne geçen zaman: %ld saniye\n", time_1970);
/* Evrensel Zaman (UTC) veya GMT zamanı */
time_detay = gmtime(&time_1970);
printf("Evrensel zaman: %s", asctime(time_detay));
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar.
1 Ocak 1970'den bugüne geçen zaman: 1571116595 saniye Evrensel zaman: Tue Oct 15 05:16:35 2019
Program time() fonksiyonu ile 1 Ocak 1970'den bugüne geçen zamanı saniye olarak alır ve ekrana yazar. Bu değeri gmtime() fonksiyonu ile GMT zamanına çevirerek asctime() fonksiyonu ile ekrana yazar.