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
Zobacz też
Informacje
localtime, _localtime32, _localtime64