Sdílet prostřednictvím


mktime, _mktime32, _mktime64

Místní čas převeďte hodnotu kalendář.

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

Parametry

  • timeptr
    Ukazatel na časové struktura; Viz asctime.

Vrácená hodnota

_mktime32 vrátí čas zadaný kalendář kódovaný jako hodnotu typu time_t.Pokud timeptr odkazuje na datum před půlnoci 1. ledna 1970, nebo pokud kalendář čas nemůže být zastoupeni, _mktime32 vrátí hodnotu –1 odevzdaných zadejte time_t.Při použití _mktime32 a timeptr odkazuje na datum po 03: 14: 07 19 01.01.08, koordinovaný světový čas (UTC) vrátí –1 odevzdaných zadejte time_t.

_mktime64Vrátí –1 odevzdaných zadejte __time64_t -li timeptr odkazuje na datum po 23: 59: 59, do 31. prosince 3000 UTC.

Poznámky

mktime, _Mktime32 a _mktime64 funkce převést zadaný čas struktura (případně nedokončený) odkazuje timeptr do plně definovanou struktura s normalizovaných hodnot a převede jej time_t kalendář časová hodnota.Převedené čas má stejné kódování jako hodnoty vrácené Časfunkce. Původní hodnoty tm_wday a tm_yday součásti timeptrstruktura jsou ignorovány a původní hodnoty jiné součásti nejsou omezeny na jejich normální rozsahy.

mktimeje vloženýfunkce , která je ekvivalentní _mktime64, pokud _USE_32BIT_TIME_T je definován v takovém případě je ekvivalentní _mktime32.

Po úpravě na UTC _mktime32 zpracovává data od půlnoci 1. ledna 1970 na 03: 14: 07 01.01.08 19._mktime64kalendářní data od půlnoci 1. ledna 1970 do 31. prosince 3000 23: 59: 59.Tato úprava může způsobit tyto funkce vrátit -1 (přetypovat na time_t, __time32_t nebo __time64_t), přestože je datum, které zadáte v rozsahu.Například v Káhiře v Egyptě, který je dvě hodiny před ČASEM, dvě hodiny budou nejprve odečtena od data v timeptr; Nyní to může uvést vaše datum je mimo rozsah.

Tyto funkce mohou použít k ověřit a vyplňte tmstruktura. Pokud úspěšný, tyto funkce nastavit hodnoty tm_wday a tm_yday podle potřeby a nastavit další komponenty představují čas zadaný kalendář, ale s jejich hodnotami nuceni normální rozsahy.Konečná hodnota tm_mday není nastavena do tm_mon a tm_year , jsou určeny.Při zadávání tm struktura čas nastaven tm_isdstpole :

  • Nula (0) označuje, že je v platnosti standardní čas.

  • Hodnota větší než 0 označuje, že je v platnosti letní čas.

  • Hodnota menší než nula , mít kód C Runtime knihovna vypočítat, zda standardní čas nebo letní čas je v platnosti.

C Runtime knihovna určuje chování letní úspory času z TZproměnnáprostředí. Pokud TZ není nastavena, Win32 volání rozhraní APIProcedura GetTimeZoneInformation se používá na letní čas informace z operačního systému. Pokud se to nezdaří, knihovna se předpokládá, že jsou použity Spojené státy prováděcí pravidla k výpočtu letní čas.tm_isdst je povinné pole.Pokud není nastavena, jeho hodnota je undefined a vrácená hodnota z těchto funkcí nepředvídatelné.Pokud timeptr odkazuje tmstruktura vrácené předchozí volání k asctime, gmtime, nebo localtime (nebo variant těchto funkcí) tm_isdstpole obsahuje správnou hodnotu.

Všimněte si, že gmtime a localtime (a _gmtime32, _gmtime64, _localtime32, a _localtime64) použít pro převod do jedné vyrovnávací paměti na vlákno .Je-li k této vyrovnávací paměti mktime, _mktime32 nebo _mktime64, předchozí obsah jsou zničeny.

Tyto funkce ověřit jejich parametr.Pokud timeptr nulový ukazatelje neplatnýpopisovačparametr vyvolání popsaným v Ověření parametrů. Pokud je povoleno spuštění pokračovat, funkce vrátí -1 a errno na EINVAL.

Požadavky

Rutina

Požadované hlavička

mktime

<time.h>

_mktime32

<time.h>

_mktime64

<time.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Knihovny

Všechny verze C Runtime knihovny.

Příklad

// 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" );
}

Vzorový výstup

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

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

Ekvivalent v rozhraní .NET Framework

System::datetime::datetime

Viz také

Referenční dokumentace

Aplikace Správa času

asctime _wasctime

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

time, _time32, _time64