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
localtime, _localtime32, _localtime64