_mkgmtime, _mkgmtime32, _mkgmtime64
Gösterdiği utc saati dönüştüren bir tmstruct için utc saati temsil ettiği bir time_t türü.
time_t _mkgmtime(
struct tm* timeptr
);
__time32_t _mkgmtime32(
struct tm* timeptr
);
__time64_t _mkgmtime64(
struct tm* timeptr
);
Parametreler
- timeptr
utc saati olarak işaretçi bir structtm dönüştürmek.
Dönüş Değeri
Bir miktar türü __time32_t veya __time64_t gece, 1 Ocak 1970'den itibaren Eşgüdümlü Evrensel Saat (utc) itibaren geçen saniye sayısını gösteren.Tarih aralık dışında ise (açıklamalar bölümüne bakın) veya giriş geçerli bir saat yorumlanamaz, dönüş değeri-1'dir.
Notlar
_mkgmtime32 Ve _mkgmtime64 işlevleri bir utc dönüştürmek ' ni zaman bir __time32_t veya __time64_t UTC saatini temsil eden türü.dönüştürmek için utc saati yerel saate, kullanmak mktime, _mktime32, ve _mktime64 yerine.
_mkgmtimedeğerlendiren bir satır içiişlev _mkgmtime64, ve time_t eşdeğeri olan __time64_t. derleyici yorumlamak için zorla gerek time_teski 32 bit olarak time_t, sizin tanımladığınız _USE_32BIT_TIME_T.19 Ocak 2038 uygulama başarısız olabilir bu önerilmez çünkü (en fazla 32-bit aralığını time_t), ve 64-bit platformlarda hiç verilmez.
İle değiştirilmiş olarak geçirilen zaman yapı aşağıdaki gibi aynı şekilde değiştirilecek _mktime işlevleri: tm_wday ve tm_yday alanların değerlerine dayalı yeni değerlere ayarlanır tm_mday ve tm_year.Belirtirken bir tm yapı belirlensin tm_isdst alan :
Sıfır (0) Standart Saati etkili olduğunu belirtmek için.
Gün ışığından yararlanma saatine etkili olduğunu belirtmek için 0'dan büyük bir değer.
c çalışma zamanı kitaplık kodu için sıfırla doldurmak değerinden daha düşük bir değer hesaplamak için standart saati gün ışığından yararlanma saatine yürürlükte olup.
c çalışma zamanı kitaplık tz ortam değişken doğru günışığından yararlanma saati belirlemek için kullanır.tz ayarlanmazsa, işletim sisteminin doğru bölgesel ışığından zaman davranışı elde etmek için sorgulanır.tm_isdstgerekli bir alanvar.Ayarlı değil, değeri tanımsız olup olmadığını ve gelen bir dönüş değeri mktime az kestirilebilir.
Aralığı _mkgmtime32 işlev . Aralığı _mkgmtime64 gece yarısı, 1 Ocak 1970, utc utc 23: 59: 59, 31 Aralık 3000 olduğunu.–1 Dönüş değeri aralık dışı tarihi sonuçlanır.Aralığı _mkgmtime bağlıdır _USE_32BIT_TIME_T tanımlanır.(Varsayılan) tanımlı değil ise, aralığı _mkgmtime64; Aksi halde, Aralık 32-bit aralığı sınırlıdır _mkgmtime32.
Dikkat gmtime ve localtime tek bir statik olarak ayrılan arabelleğe dönüşümü için kullanın.Bu arabellek sağlarsanız mkgmtime, önceki içeriği yok edilir.
Örnek
// crt_mkgmtime.c
#include <stdio.h>
#include <time.h>
int main()
{
struct tm t1, t2;
time_t now, mytime, gmtime;
char buff[30];
time( & now );
_localtime64_s( &t1, &now );
_gmtime64_s( &t2, &now );
mytime = mktime(&t1);
gmtime = _mkgmtime(&t2);
printf("Seconds since midnight, January 1, 1970\n");
printf("My time: %I64d\nGM time (UTC): %I64d\n\n", mytime, gmtime);
/* Use asctime_s to display these times. */
_localtime64_s( &t1, &mytime );
asctime_s( buff, sizeof(buff), &t1 );
printf( "Local Time: %s\n", buff );
_gmtime64_s( &t2, &gmtime );
asctime_s( buff, sizeof(buff), &t2 );
printf( "Greenwich Mean Time: %s\n", buff );
}
Örnek Çıktı
Seconds since midnight, January 1, 1970
My time: 1171588492
GM time (UTC): 1171588492
Local Time: Thu Feb 15 17:14:52 2007
Greenwich Mean Time: Fri Feb 16 01:14:52 2007
Aşağıdaki örnek, tamamlanmamış yapı , haftanın günü ve yılın günü hesaplanan değerlerle nasıl doldurulur gösterir.
// crt_mkgmtime2.c
#include <stdio.h>
#include <time.h>
#include <memory.h>
int main()
{
struct tm t1, t2;
time_t gmtime;
char buff[30];
memset(&t1, 0, sizeof(struct tm));
memset(&t2, 0, sizeof(struct tm));
t1.tm_mon = 1;
t1.tm_isdst = 0;
t1.tm_year = 103;
t1.tm_mday = 12;
// The day of the week and year will be incorrect in the output here.
asctime_s( buff, sizeof(buff), &t1);
printf("Before calling _mkgmtime, t1 = %s t.tm_yday = %d\n",
buff, t1.tm_yday );
gmtime = _mkgmtime(&t1);
// The correct day of the week and year were determined.
asctime_s( buff, sizeof(buff), &t1);
printf("After calling _mkgmtime, t1 = %s t.tm_yday = %d\n",
buff, t1.tm_yday );
}
Çıktı
Before calling _mkgmtime, t1 = Sun Feb 12 00:00:00 2003
t.tm_yday = 0
After calling _mkgmtime, t1 = Wed Feb 12 00:00:00 2003
t.tm_yday = 42
Ayrıca bkz.
Başvuru
gmtime_s, _gmtime32_s, _gmtime64_s