Udostępnij za pośrednictwem


mktime, _mktime32, _mktime64

Konwertowanie czasu lokalnego do wartości kalendarza.

time_t mktime(
   struct tm *timeptr 
);
__time32_t _mktime32(
   struct tm *timeptr 
);
__time64_t _mktime64(
   struct tm *timeptr 
);

Parametry

  • timeptr
    Wskaźnik do czasu struktura; zobacz asctime.

Wartość zwracana

_mktime32 zwraca czas określony kalendarz zakodowany jako wartości typu time_t.Jeśli timeptr odwołuje się do daty wcześniejszej od północy 1 stycznia 1970 r. lub jeśli czas kalendarz nie może być reprezentowane, _mktime32 zwraca –1 rzutować typu time_t.Podczas korzystania z _mktime32 i jeśli timeptr odwołuje się do daty po 03: 14: 07 19 stycznia 2038, skoordynowanego czasu uniwersalnego (UTC), to zostanie zwrócona –1 rzutować typu time_t.

_mktime64Zwraca –1 rzutować typu __time64_t Jeśli timeptr odwołuje się do daty po 23: 59: 59, 31 grudnia, 3000, UTC.

Uwagi

mktime, _Mktime32 i _mktime64 funkcje konwertować podany czas struktura (ewentualnie niekompletny) wskazywanej przez timeptr w pełni określonej struktura z znormalizowanych wartości, a następnie konwertuje je na time_t wartość czasukalendarza.Godzina przekonwertowany ma ten sam kodowanie jako wartości zwracane przez czasufunkcja. Oryginalne wartości tm_wday i tm_yday składników timeptrstruktura są ignorowane, a oryginalne wartości innych składników nie są ograniczone do ich normalnego zakresów.

mktimejest w tekściefunkcja , która jest równoważne z _mktime64, chyba że _USE_32BIT_TIME_T jest zdefiniowany, w którym to przypadku jest równoważne z _mktime32.

Po dostosowaniu do czasu UTC, _mktime32 uchwyty dat od północy do północy, 1 stycznia 1970 r., do 03: 14: 07 19 stycznia 2038._mktime64interpretuje daty, od północy do północy, 1 stycznia 1970 do 23: 59: 59, 31 grudnia 3000.Dostosowanie to może spowodować te funkcje zwraca –1 (oddanych do time_t, __time32_t lub __time64_t), nawet jeśli daty można określić znajduje się w zasięgu.Na przykład, jeśli znajdują się w Kairze, Egipt, czyli dwóch godzin przed czasem UTC, dwie godziny najpierw zostaną odjęte od daty można określić w timeptr; to, że teraz umieścić Data spoza zakresu.

Funkcje te mogą być używane do weryfikować i wypełnij tmstruktura. Jeśli się powiedzie, te funkcje ustawić wartości tm_wday i tm_yday jako właściwe i ustawić inne składniki do reprezentowania czas określony kalendarz, ale z ich wartościami zmuszony do normalnego zakresów.Końcowa wartość tm_mday nie jest ustawiona do tm_mon i tm_year są określone.Podczas określania tm ustawiony czasstruktura tm_isdstpole :

  • Zero (0), aby wskazać, w rezultacie jest czas standardowy.

  • Wartość większa niż 0 wskazuje, że zmiany czasu letniego jest aktywna.

  • Wartości mniejsze od zero do kodu c run-time biblioteka obliczyć, czy czas standardowy lub zmiany czasu letniego jest aktywna.

C run-time biblioteka określi zachowanie letni oszczędności czasu z TZśrodowisko. Jeśli TZ nie jest ustawiona, wywołania interfejsu Win32 API Funkcja GetTimeZoneInformation jest używana, aby uzyskać informacje dotyczące czasu letniego z systemu operacyjnego.Jeśli to się nie powiedzie, biblioteka zakłada, że są używane w Stanach Zjednoczonych zasady wykonywania obliczania czasu letniego.tm_isdst jest wymagane pole.Jeśli nie jest ustawiony, jego wartość jest niezdefiniowana i wartość zwracana z tych funkcji jest nieprzewidywalne.Jeśli timeptr wskazuje na tmstruktura zwrócony przez poprzednie wywołanie asctime, gmtime, lub localtime (lub warianty te funkcje), tm_isdstpole zawiera prawidłowe wartości.

Należy zauważyć, że gmtime i localtime (i _gmtime32, _gmtime64, _localtime32, i _localtime64) użyć pojedynczego buforu na wątek do konwersji.Jeśli podasz tego buforu do mktime, _mktime32 lub _mktime64, poprzednia zawartość są niszczone.

Te funkcje weryfikować , ich parametr.Jeśli timeptr pusty wskaźnikjest nieprawidłowyobsługaparametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru. Jeśli wykonanie może kontynuować, funkcje zwracają wartość -1 i errno do EINVAL.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówek

mktime

<time.h>

_mktime32

<time.h>

_mktime64

<time.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Wszystkie wersje biblioteki uruchomieniowej c.

Przykład

// crt_mktime.c
/* The example takes a number of days
 * as input and returns the time, the current
 * date, and the specified number of days.
 */

#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm  when;
   __time64_t now, result;
   int        days;
   char       buff[80];

   time( &now );
   _localtime64_s( &when, &now );
   asctime_s( buff, sizeof(buff), &when );
   printf( "Current time is %s\n", buff );
   days = 20;
   when.tm_mday = when.tm_mday + days;
   if( (result = mktime( &when )) != (time_t)-1 ) {
      asctime_s( buff, sizeof(buff), &when );
      printf( "In %d days the time will be %s\n", days, buff );
   } else
      perror( "mktime failed" );
}

Przykładowe dane wyjściowe

Current time is Fri Apr 25 13:34:07 2003

In 20 days the time will be Thu May 15 13:34:07 2003

Odpowiednik w programie .NET Framework

System::DateTime::DateTime

Zobacz też

Informacje

Zarządzanie czasem

asctime, _wasctime

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

time, _time32, _time64