Sdílet prostřednictvím


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í 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ý CTime objekt. Tento konstruktor umožňuje definovat CTime 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 ze SYSTEMTIME struktury. Tento konstruktor očekává místní čas.

  • CTime( const FILETIME& );CTime Vytvoří objekt ze FILETIME struktury. Pravděpodobně nebudete inicializaci používat CTime FILETIME přímo. Pokud k manipulaci se souborem CFile používáte objekt, CFile::GetStatus načte časové razítko souboru prostřednictvím objektu inicializovaného CTime se strukturou FILETIME . 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á 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