Aracılığıyla paylaş


_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

Zaman Yönetimi

asctime, _wasctime

asctime_s, _wasctime_s

gmtime, _gmtime32, _gmtime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

mktime, _mktime32, _mktime64

time, _time32, _time64