CTime – třída
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í CTime
naleznete 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ýCTime
objekt. Tento konstruktor umožňuje definovatCTime
pole objektů. Před použitím byste měli tato pole inicializovat s platnými časy.CTime( const CTime& );
CTime
Vytvoří objekt z jinéCTime
hodnoty.CTime( __time64_t );
CTime
Vytvoří 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, ...);
CTime
Vytvoří 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 );
CTime
Vytvoří objekt ze zadaných hodnot data a času MS-DOS. Tento konstruktor očekává místní čas.CTime( const SYSTEMTIME& );
CTime
Vytvoří objekt zeSYSTEMTIME
struktury. Tento konstruktor očekává místní čas.CTime( const FILETIME& );
CTime
Vytvoří objekt zeFILETIME
struktury. Pravděpodobně nebudete inicializaci používatCTime FILETIME
přímo. Pokud k manipulaci se souboremCFile
používáte objekt,CFile::GetStatus
načte časové razítko souboru prostřednictvím objektu inicializovanéhoCTime
se 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í
DBTIMESTAMP
parametr 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á GetLocalTm
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::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