Udostępnij za pośrednictwem


mktime, _mktime32, _mktime64

Konwertuj czas lokalny na wartość kalendarza.

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

Parametry

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

Wartość zwracana

_mktime32Zwraca czas określony kalendarz zakodowane jako wartości typu time_t.Jeśli timeptr odnosi się do daty przed północ, 1 stycznia 1970 r., lub jeśli nie można przedstawić czas kalendarza, _mktime32 zwraca wartość -1 rzutowany na typ time_t.Podczas korzystania z _mktime32 i jeśli timeptr odwołuje się do datę wypadającą po 03:14:07 19 stycznia 2038 uniwersalny czas koordynowany (UTC) zwróciła ona -1 rzutowany na typ time_t.

_mktime64Zwraca -1 rzutowany na typ __time64_t Jeśli timeptr odwołuje się do datę wypadającą po 23:59:59, 31 grudnia 3000 UTC.

Uwagi

mktime, _mktime32 i _mktime64 funkcji konwertuje struktury podanego czasu (prawdopodobnie niekompletny) wskazywany przez timeptr w pełni zdefiniowanej struktury z znormalizować wartości, a następnie konwertuje jego time_t kalendarza wartość godziny.Czas przekonwertowana ma tego samego kodu jako wartości zwracane przez czas funkcji.Oryginalne wartości tm_wday i tm_yday składników timeptr struktury są ignorowane, a oryginalne wartości innych składników nie są ograniczone do ich normalnego zakresów.

mktimeFunkcja w tekście, który jest odpowiednikiem jest _mktime64, chyba że _USE_32BIT_TIME_T jest zdefiniowany w takim przypadku jest odpowiednikiem _mktime32.

Po dopasowaniu czas UTC _mktime32 obsługuje daty z północ, 1 stycznia 1970 na 03:14:07 19 stycznia 2038._mktime64obsługuje daty z północ, 1 stycznia 1970 do 23:59:59 31 grudnia 3000.Ta korekta może spowodować tych funkcji zwrócić wartość -1 (rzutowany time_t, __time32_t lub __time64_t), nawet jeśli należy określić datę mieści się w zakresie.Na przykład, jeżeli jesteś w Kair, Egipt, która jest dwie godziny, zanim zostanie udostępnione UTC, dwie godziny zostanie najpierw odjęta od daty określonej w timeptr; może to spowodować teraz datą poza zakresem.

Tych funkcji służy do sprawdzania poprawności i wypełnić strukturę tm.Jeśli powodzenia tych funkcji ustawić wartości tm_wday i tm_yday odpowiednio ustawić innych składników do reprezentowania czasu określony kalendarz, ale z wartościami wymuszone jego normalne zakresów.Ostateczna wartość tm_mday nie jest ustawiony do tm_mon i tm_year są określane.Podczas określania tm struktury czasu, należy ustawić tm_isdst pola do:

  • Zero (0), aby wskazać, że (czas standardowy) jest rozruch.

  • Wartość większą niż 0, aby wskazać, że czasu jest rozruch.

  • Wartość niższą niż zero, aby mieć biblioteki w czasie wykonywania kodu C obliczyć, czy (czas standardowy) lub czasu jest aktywna.

Biblioteka czasu C ustali zachowanie letniego oszczędność czasu z TZ zmiennej środowiskowej.Jeśli TZ nie została ustawiona, wywołanie interfejsu API Win32 Funkcja GetTimeZoneInformation można uzyskać informacje o czasie letniego od systemu operacyjnego.W przypadku niepowodzenia biblioteki przyjęto, że zasady wykonywania obliczenia czasu Stanów Zjednoczonych są używane.tm_isdstpole jest wymagane.Jeśli nie zostanie ustawiona, jej wartość jest niezdefiniowana i wartość zwracana z tych funkcji jest nieoczekiwany.Jeśli timeptr wskazuje tm struktury zwrócony przez poprzednie wywołanie asctime, gmtime, lub localtime (lub wariantów z tych funkcji), tm_isdst pole zawiera prawidłową wartość.

Należy pamiętać, że gmtime i localtime (i _gmtime32, _gmtime64, _localtime32, i _localtime64) używać pojedynczego buforu na wątku do konwersji.Jeśli zostaną podane bufor do mktime, _mktime32 lub _mktime64, zniszczone poprzedniej zawartości.

Tych funkcji Sprawdzanie poprawności ich parametru.Jeśli timeptr wskaźnik null, program obsługi nieprawidłowy parametr zostanie wywołany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli jest dozwolone wykonywanie aby kontynuować, zwracają wartość -1 i ustawić errno do EINVAL.

Wymagania

Procedura

Wymagany nagłówek

mktime

< time.h >

_mktime32

< time.h >

_mktime64

< time.h >

Dodatkowe informacje o zgodności — zobacz: Zgodność we Wprowadzeniu.

Biblioteki

Wszystkie wersje C biblioteki czasu wykonywania.

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