Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Představuje absolutní čas a datum.
Syntaxe
class CTime
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
| CTime::CTime | Vytváří objekty CTime různými způsoby. |
Veřejné metody
| Název | Popis |
|---|---|
| CTime::Format | CTime Převede objekt na formátovaný řetězec – na základě místního časového pásma. |
| CTime::FormatGmt | CTime Převede objekt na formátovaný řetězec – na základě standardu UTC. |
| CTime::GetAsDBTIMESTAMP | Převede informace o čase uložené v objektu CTime na strukturu DBTIMESTAMP kompatibilní s Win32. |
| CTime::GetAsSystemTime | Převede informace o čase uložené v objektu CTime na strukturu SYSTEMTIME kompatibilní s Win32. |
| CTime::GetCurrentTime | CTime Vytvoří objekt, který představuje aktuální čas (statickou členovou funkci). |
| CTime::GetDay | Vrátí den představující CTime objekt. |
| CTime::GetDayOfWeek | Vrátí den v týdnu reprezentovaný objektem CTime . |
| CTime::GetGmtTm | Rozdělí objekt do komponent – podle standardu CTime UTC. |
| CTime::GetHour | Vrátí hodinu reprezentovanou objektem CTime . |
| CTime::GetLocalTm | Rozdělí CTime objekt do komponent – na základě místního časového pásma. |
| CTime::GetMinute | Vrátí minutu reprezentovanou objektem CTime . |
| CTime::GetMonth | Vrátí měsíc reprezentovaný objektem CTime . |
| CTime::GetSecond | Vrátí sekundu reprezentovanou objektem CTime . |
| CTime::GetTime | Vrátí __time64_t hodnotu daného objektuCTime. |
| CTime::GetYear | Vrátí rok reprezentovaný objektem CTime . |
| CTime::Serialize64 | Serializuje data do archivu nebo z archivu. |
Operátory
| Název | Popis |
|---|---|
| operátor +- | Tyto operátory sčítají a odčítají a CTime objektyCTimeSpan. |
| operator +=, -= | Tyto operátory přičítají a odečítají CTimeSpan objekt do a od tohoto CTime objektu. |
| operator = | Operátor přiřazení. |
| operator ==, < atd. | Relační operátory. |
Poznámky
CTime nemá základní třídu.
CTime hodnoty jsou založeny na koordinovaném univerzálním čase (UTC), což odpovídá koordinovanému univerzálnímu času (Greenwich Mean Time, GMT). Informace o určení časového pásma najdete v části Správa času.
Při vytváření objektu CTime nDST nastavte parametr na hodnotu 0 tak, aby indikovaly, že se používá standardní čas, nebo na hodnotu větší než 0, která označuje, že letní čas je v platnosti, nebo na hodnotu menší než nula, aby kód knihovny run-time jazyka C počítal, zda se používá standardní čas nebo letní čas. tm_isdst je povinné pole. Pokud není nastavena, její hodnota není definována a návratová hodnota z mktime je nepředvídatelná. Pokud timeptr odkazuje na strukturu tm vrácenou předchozím voláním asctime_s, _gmtime_s nebo localtime_s, tm_isdst pole obsahuje správnou hodnotu.
Doprovodná třída CTimeSpan představuje časový interval.
Třídy CTime nejsou CTimeSpan určeny pro odvození. Vzhledem k tomu, že neexistují žádné virtuální funkce, velikost CTime a CTimeSpan objekty jsou přesně 8 bajtů. Většina členských funkcí je vložená.
Poznámka:
Horní limit data je 12.31.3000. Dolní limit je 1.1.1970 12:00:00 GMT.
Další informace o použití CTimenaleznete v článcích Datum a čas a Správa času v referenčních informacích ke knihovně runtime.
Poznámka:
Struktura se změnila CTime z MFC 7.1 na MFC 8.0. Pokud serializujete CTime strukturu pomocí operátoru << v prostředí MFC 8.0 nebo novější verzi, výsledný soubor nebude čitelný ve starších verzích mfc.
Požadavky
Hlavička: atltime.h
Operátory porovnání jazyka CTime
Relační operátory.
bool operator==(CTime time) const throw();
bool operator!=(CTime time) const throw();
bool operator<(CTime time) const throw();
bool operator>(CTime time) const throw();
bool operator<=(CTime time) const throw();
bool operator>=(CTime time) const throw();
Parametry
Čas
Objekt CTime , který se má porovnat.
Návratová hodnota
Tyto operátory porovnávají dva absolutní časy a vrátí hodnotu PRAVDA, pokud je podmínka pravdivá; jinak NEPRAVDA.
Příklad
CTime t1 = CTime::GetCurrentTime();
CTime t2 = t1 + CTimeSpan(0, 1, 0, 0); // 1 hour later
ATLASSERT(t1 != t2);
ATLASSERT(t1 < t2);
ATLASSERT(t1 <= t2);
CTime::CTime
Vytvoří nový CTime objekt inicializovaný se zadaným časem.
CTime() throw();
CTime(__time64_t time) throw();
CTime(int nYear, int nMonth, int nDay,
int nHour, int nMin, int nSec, int nDST = -1);
CTime(WORD wDosDate, WORD wDosTime, int nDST = -1);
CTime(const SYSTEMTIME& st, int nDST = - 1) throw();
CTime(const FILETIME& ft, int nDST = - 1);
CTime(const DBTIMESTAMP& dbts, int nDST = -1) throw();
Parametry
timeSrc
Označuje CTime objekt, který již existuje.
Čas
Časová __time64_t hodnota, což je počet sekund po 1. lednu 1970 UTC. Všimněte si, že tato možnost se upraví na místní čas. Pokud jste například v New Yorku CTime a vytvoříte objekt předáním parametru 0, vrátí funkce CTime::GetMonth hodnotu 12.
nYear, nMonth, nDay, nHour, nMin, nSec
Určuje hodnoty data a času, které se mají zkopírovat do nového CTime objektu.
nDST
Určuje, jestli je čas letního času v platnosti. Může mít jednu ze tří hodnot:
nDST nastavený na 0Standard time is in effect.
Hodnota nDST nastavená na hodnotu větší než 0Daylight úspora času je platná.
nDST nastavena na hodnotu menší než 0.Výchozí. Automaticky vypočítá, jestli se používá standardní čas nebo letní čas.
wDosDate, wDosTime
Hodnoty data a času MS-DOS, které se mají převést na hodnotu data a času a zkopírovat do nového CTime objektu.
sv
Struktura SYSTEMTIME, která má být převedena na hodnotu data a času a zkopírována do nového CTime objektu.
Metrů
Struktura FILETIME , která se má převést na hodnotu data a času a zkopírovat do nového CTime objektu.
dbts
Odkaz na strukturu DBTIMESTAMP obsahující aktuální místní čas.
Poznámky
Každý konstruktor je popsaný níže:
CTime();Vytvoří neinicializovanýCTimeobjekt. Tento konstruktor umožňuje definovatCTimepole objektů. Před použitím byste měli tato pole inicializovat s platnými časy.CTime( const CTime& );CTimeVytvoří objekt z jinéCTimehodnoty.CTime( __time64_t );CTimeVytvoří objekt z typu __time64_t. Tento konstruktor očekává čas UTC a před uložením výsledku převede výsledek na místní čas.CTime( int, int, ...);CTimeVytvoří objekt z místních časových komponent s jednotlivými komponentami omezenými na následující oblasti:Komponenta Rozsah nYear 1970-3000 nMonth 1-12 nDay 1-31 nHour 0-23 nMin 0-59 nSec 0-59 Tento konstruktor provede odpovídající převod na UTC. Ladicí verze knihovny tříd Microsoft Foundation se používá, pokud některé z časových komponent nejsou v rozsahu. Před voláním je nutné ověřit argumenty. Tento konstruktor očekává místní čas.
CTime( WORD, WORD );CTimeVytvoří objekt ze zadaných hodnot data a času MS-DOS. Tento konstruktor očekává místní čas.CTime( const SYSTEMTIME& );CTimeVytvoří objekt zeSYSTEMTIMEstruktury. Tento konstruktor očekává místní čas.CTime( const FILETIME& );CTimeVytvoří objekt zeFILETIMEstruktury. Pravděpodobně nebudete inicializaci používatCTime FILETIMEpřímo. Pokud k manipulaci se souboremCFilepoužíváte objekt,CFile::GetStatusnačte časové razítko souboru prostřednictvím objektu inicializovanéhoCTimese strukturouFILETIME. Tento konstruktor předpokládá čas založený na standardu UTC a před uložením výsledku automaticky převede hodnotu na místní čas.Poznámka:
Konstruktor používající
DBTIMESTAMPparametr je k dispozici pouze v případech, kdy je zahrnuta technologie OLEDB.h.
Další informace najdete ve struktuře SYSTEMTIME a FILETIME v sadě Windows SDK. Podívejte se také na položku ms-DOS Date and Time v sadě Windows SDK.
Příklad
time_t osBinaryTime; // C run-time time (defined in <time.h>)
time(&osBinaryTime) ; // Get the current time from the
// operating system.
CTime time1; // Empty CTime. (0 is illegal time value.)
CTime time2 = time1; // Copy constructor.
CTime time3(osBinaryTime); // CTime from C run-time time
CTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
CTime::Format
Voláním této členské funkce vytvoříte formátovanou reprezentaci hodnoty data a času.
CString Format(LPCTSTR pszFormat) const;
CString Format(UINT nFormatID) const;
Parametry
pszFormat
Formátovací řetězec podobný řetězci printf formátování. Kódy formátování, před znakem procenta (%) jsou nahrazeny odpovídající CTime komponentou. Ostatní znaky ve formátovacím řetězci se zkopírují beze změny do vráceného řetězce. Seznam kódů formátování najdete v souboru strftime funkce runtime.
nFormatID
ID řetězce, který identifikuje tento formát.
Návratová hodnota
A CString , který obsahuje formátovaný čas.
Poznámky
Pokud je stav tohoto CTime objektu null, návratová hodnota je prázdný řetězec.
Tato metoda vyvolá výjimku, pokud hodnota data a času pro formátování není v rozsahu od půlnoci, 1. ledna 1970 do 31. prosince 3000 Univerzální koordinovaný čas (UTC).
Příklad
CTime t(1999, 3, 19, 22, 15, 0);
// 10:15 PM March 19, 1999
CString s = t.Format(_T("%A, %B %d, %Y"));
ATLASSERT(s == _T("Friday, March 19, 1999"));
CTime::FormatGmt
Vygeneruje formátovaný řetězec, který odpovídá tomuto CTime objektu.
CString FormatGmt(LPCTSTR pszFormat) const;
CString FormatGmt(UINT nFormatID) const;
Parametry
pszFormat
Určuje formátovací řetězec podobný formátovacímu řetězci printf . Podrobnosti najdete v strftime funkce runtime.
nFormatID
ID řetězce, který identifikuje tento formát.
Návratová hodnota
A CString , který obsahuje formátovaný čas.
Poznámky
Časová hodnota není převedena, a proto odpovídá standardu UTC.
Tato metoda vyvolá výjimku, pokud hodnota data a času pro formátování není v rozsahu od půlnoci, 1. ledna 1970 do 31. prosince 3000 Univerzální koordinovaný čas (UTC).
Příklad
Podívejte se na příklad pro CTime::Format.
CTime::GetAsDBTIMESTAMP
Voláním této členské funkce převedete informace o čase uložené v objektu CTime na strukturu DBTIMESTAMP kompatibilní s Win32.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& dbts) const throw();
Parametry
dbts
Odkaz na strukturu DBTIMESTAMP obsahující aktuální místní čas.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Uloží výsledný čas do odkazované struktury dbts . Datová DBTIMESTAMP struktura inicializovaná touto funkcí bude mít její fraction člen nastaven na nulu.
Příklad
CTime t = CTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // Retrieves the time in t into the ts structure
CTime::GetAsSystemTime
Voláním této členské funkce převedete informace o čase uloženém v objektu CTime na strukturu SYSTEMTIME kompatibilní s Win32.
bool GetAsSystemTime(SYSTEMTIME& st) const throw();
Parametry
timeDest
Odkaz na strukturu SYSTEMTIME , která bude obsahovat převedenou hodnotu data a času objektu CTime .
Návratová hodnota
TRUE v případě úspěchu; jinak NEPRAVDA.
Poznámky
GetAsSystemTime uloží výsledný čas do odkazované struktury timeDest . Datová SYSTEMTIME struktura inicializovaná touto funkcí bude mít její wMilliseconds člen nastaven na nulu.
Příklad
// Convert CTime to FILETIME
CTime time(CTime::GetCurrentTime());
SYSTEMTIME timeDest;
time.GetAsSystemTime(timeDest);
FILETIME fileTime;
::SystemTimeToFileTime(&timeDest, &fileTime);
CTime::GetCurrentTime
CTime Vrátí objekt, který představuje aktuální čas.
static CTime WINAPI GetCurrentTime() throw();
Poznámky
Vrátí aktuální systémové datum a čas ve standardu UTC (Coordinated Universal Time).
Příklad
CTime t = CTime::GetCurrentTime();
CTime::GetDay
Vrátí den představující CTime objekt.
int GetDay() const throw();
Návratová hodnota
Vrátí den v měsíci na základě místního času v rozsahu 1 až 31.
Poznámky
Tato funkce volá GetLocalTminterní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
// Example for CTime::GetDay, CTime::GetMonth, and CTime::GetYear
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
ATLASSERT(t.GetDay() == 19);
ATLASSERT(t.GetMonth() == 3);
ATLASSERT(t.GetYear() == 1999);
CTime::GetDayOfWeek
Vrátí den v týdnu reprezentovaný objektem CTime .
int GetDayOfWeek() const throw();
Návratová hodnota
Vrátí den v týdnu na základě místního času; 1 = neděle, 2 = pondělí, až 7 = sobota.
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
// Print out the day of the week using localized day name
UINT DayOfWeek[] = {
LOCALE_SDAYNAME7, // Sunday
LOCALE_SDAYNAME1,
LOCALE_SDAYNAME2,
LOCALE_SDAYNAME3,
LOCALE_SDAYNAME4,
LOCALE_SDAYNAME5,
LOCALE_SDAYNAME6 // Saturday
};
TCHAR strWeekday[256];
CTime time(CTime::GetCurrentTime()); // Initialize CTime with current time
::GetLocaleInfo(LOCALE_USER_DEFAULT, // Get string for day of the week from system
DayOfWeek[time.GetDayOfWeek()-1], // Get day of week from CTime
strWeekday, sizeof(strWeekday) / sizeof(strWeekday[0]));
ATLTRACE(_T("%s\n"), strWeekday); // Print out day of the week
CTime::GetGmtTm
Získá strukturu tm, který obsahuje rozklad času obsaženého v tomto CTime objektu.
struct tm* GetGmtTm(struct tm* ptm) const;
Parametry
ptm
Odkazuje na vyrovnávací paměť, která bude přijímat časová data. Pokud je tento ukazatel NULL, vyvolá se výjimka.
Návratová hodnota
Ukazatel na výplňovou strukturu tm definovaný v souboru include TIME.H. Viz gmtime, _gmtime32, _gmtime64 rozložení struktury.
Poznámky
GetGmtTm vrátí UTC.
ptm nemůže mít hodnotu NULL. Pokud se chcete vrátit ke starému chování, ve kterém může být hodnota PTM null, která označuje, že by se měla použít interní staticky přidělená vyrovnávací paměť, a pak nedefinovat _SECURE_ATL.
Příklad
// Compute difference between local time and GMT
CTime time(CTime::GetCurrentTime());
tm t1, t2;
time.GetLocalTm(&t1);
time.GetGmtTm(&t2);
ATLTRACE(_T("Difference between local time and GMT is %d hours.\n"),
t1.tm_hour - t2.tm_hour);
CTime::GetHour
Vrátí hodinu reprezentovanou objektem CTime .
int GetHour() const throw();
Návratová hodnota
Vrátí hodinu na základě místního času v rozsahu 0 až 23.
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
// Example for CTime::GetHour, CTime::GetMinute, and CTime::GetSecond
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
ATLASSERT(t.GetSecond() == 0);
ATLASSERT(t.GetMinute() == 15);
ATLASSERT(t.GetHour() == 22);
CTime::GetLocalTm
Získá strukturu tm obsahující rozklad času obsaženého v tomto CTime objektu.
struct tm* GetLocalTm(struct tm* ptm) const;
Parametry
ptm
Odkazuje na vyrovnávací paměť, která bude přijímat časová data. Pokud je tento ukazatel NULL, vyvolá se výjimka.
Návratová hodnota
Ukazatel na výplňovou strukturu tm definovaný v souboru include TIME.H. Viz gmtime, _gmtime32, _gmtime64 rozložení struktury.
Poznámky
GetLocalTm vrátí místní čas.
ptm nemůže mít hodnotu NULL. Pokud se chcete vrátit ke starému chování, ve kterém může být hodnota PTM null, která označuje, že by se měla použít interní staticky přidělená vyrovnávací paměť, a pak nedefinovat _SECURE_ATL.
Příklad
CTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
tm osTime; // A structure containing time elements.
t.GetLocalTm(&osTime);
ATLASSERT(osTime.tm_mon == 2); // Note zero-based month!
CTime::GetMinute
Vrátí minutu reprezentovanou objektem CTime .
int GetMinute() const throw();
Návratová hodnota
Vrátí minutu na základě místního času v rozsahu 0 až 59.
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
Podívejte se na příklad getHour.
CTime::GetMonth
Vrátí měsíc reprezentovaný objektem CTime .
int GetMonth() const throw();
Návratová hodnota
Vrátí měsíc na základě místního času v rozsahu 1 až 12 (1 = leden).
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
Podívejte se na příklad pro GetDay.
CTime::GetSecond
Vrátí sekundu reprezentovanou objektem CTime .
int GetSecond() const throw();
Návratová hodnota
Vrátí sekundu na základě místního času v rozsahu 0 až 59.
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
Podívejte se na příklad getHour.
CTime::GetTime
Vrátí __time64_t hodnotu daného objektuCTime.
__time64_t GetTime() const throw();
Návratová hodnota
GetTime vrátí počet sekund mezi aktuálním CTime objektem a 1. lednem 1970.
Příklad
CTime t(2005, 10, 20, 23, 50, 0); // 11:50 PM October 20, 2005
time_t osBinaryTime = t.GetTime(); // time_t defined in <time.h>
_tprintf_s(_T("time_t = %ld\n"), osBinaryTime);
CTime::GetYear
Vrátí rok reprezentovaný objektem CTime .
int GetYear();
Návratová hodnota
Vrátí rok na základě místního času v rozsahu 1 1970 až 18. ledna 2038 (včetně).
Poznámky
Tato funkce volá GetLocalTm, která používá interní staticky přidělenou vyrovnávací paměť. Data v této vyrovnávací paměti jsou přepsána z důvodu volání jiných CTime členských funkcí.
Příklad
Podívejte se na příklad pro GetDay.
CTime::operator =
Operátor přiřazení.
CTime& operator=(__time64_t time) throw();
Parametry
Čas
Nová hodnota data a času.
Návratová hodnota
Aktualizovaný CTime objekt.
Poznámky
Tento přetížený operátor přiřazení zkopíruje zdrojový čas do tohoto CTime objektu. Interní časové úložiště v objektu CTime je nezávislé na časovém pásmu. Převod časového pásma není během přiřazení nutný.
CTime::operator +, -
Tyto operátory sčítají a odčítají a CTime objektyCTimeSpan.
CTime operator+(CTimeSpan timeSpan) const throw();
CTime operator-(CTimeSpan timeSpan) const throw();
CTimeSpan operator-(CTime time) const throw();
Parametry
timeSpan
Objekt CTimeSpan , který se má přičíst nebo odečíst.
Čas
Objekt CTime , který se má odečíst.
Návratová hodnota
A CTime nebo CTimeSpan objekt představující výsledek operace.
Poznámky
CTime objekty představují absolutní čas, CTimeSpan objekty představují relativní čas. První dva operátory umožňují sčítat a odečítat CTimeSpan objekty do a od CTime objektů. Třetí operátor umožňuje odečíst jeden CTime objekt od druhého a získat CTimeSpan tak objekt.
Příklad
CTime t1(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
CTime t2(1999, 3, 20, 22, 15, 0); // 10:15 PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
ATLASSERT(ts.GetTotalSeconds() == 86400L);
ATLASSERT((t1 + ts) == t2); // Add a CTimeSpan to a CTime.
ATLASSERT((t2 - ts) == t1); // Subtract a CTimeSpan from a CTime.
CTime::operator +=, -=
Tyto operátory přičítají a odečítají CTimeSpan objekt do a od tohoto CTime objektu.
CTime& operator+=(CTimeSpan span) throw();
CTime& operator-=(CTimeSpan span) throw();
Parametry
rozpětí
Objekt CTimeSpan , který se má přičíst nebo odečíst.
Návratová hodnota
Aktualizovaný CTime objekt.
Poznámky
Tyto operátory umožňují přičíst a odečíst CTimeSpan objekt do a od tohoto CTime objektu.
Příklad
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
t += CTimeSpan(0, 1, 0, 0); // 1 hour exactly
ATLASSERT(t.GetHour() == 23);
CTime::Serialize64
Poznámka:
Tato metoda je k dispozici pouze v projektech MFC.
Serializuje data přidružená k členské proměnné do archivu nebo z archivu.
CArchive& Serialize64(CArchive& ar);
Parametry
ar
Objekt CArchive , který chcete aktualizovat.
Návratová hodnota
Aktualizovaný CArchive objekt.
Viz také
asctime_s, _wasctime_s
_ftime_s, _ftime32_s, _ftime64_s
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
strftime, wcsftime, _strftime_l, _wcsftime_l
time, _time32, _time64
CTimeSpan – třída
Graf hierarchie
Sdílené třídy ATL/MFC