Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Microsoft Foundation-klassbiblioteket (MFC) och ACTIVE Template Library (ATL) fortsätter att stödjas. Vi lägger dock inte längre till funktioner eller uppdaterar dokumentationen.
Representerar en absolut tid och ett datum.
Syntax
class CTime
Medlemmar
Offentliga konstruktorer
| Namn | Description |
|---|---|
| CTime::CTime | Konstruerar CTime objekt på olika sätt. |
Offentliga metoder
| Namn | Description |
|---|---|
| CTime::Format | Konverterar ett CTime objekt till en formaterad sträng – baserat på den lokala tidszonen. |
| CTime::FormatGmt | Konverterar ett CTime objekt till en formaterad sträng – baserat på UTC. |
| CTime::GetAsDBTIMESTAMP | Konverterar tidsinformationen CTime som lagras i objektet till en Win32-kompatibel DBTIMESTAMP-struktur. |
| CTime::GetAsSystemTime | Konverterar tidsinformationen CTime som lagras i objektet till en Win32-kompatibel SYSTEMTIME-struktur . |
| CTime::GetCurrentTime | Skapar ett CTime objekt som representerar den aktuella tiden (statisk medlemsfunktion). |
| CTime::GetDay | Returnerar den dag som representeras av CTime objektet. |
| CTime::GetDayOfWeek | Returnerar veckodagen som representeras av objektet CTime . |
| CTime::GetGmtTm | Delar upp ett CTime objekt i komponenter – baserat på UTC. |
| CTime::GetHour | Returnerar timmen som representeras av CTime objektet. |
| CTime::GetLocalTm | Delar upp ett CTime objekt i komponenter – baserat på den lokala tidszonen. |
| CTime::GetMinute | Returnerar minuten som representeras av CTime objektet. |
| CTime::GetMonth | Returnerar den månad som representeras av CTime objektet. |
| CTime::GetSecond | Returnerar den andra som representeras av CTime objektet. |
| CTime::GetTime | Returnerar ett __time64_t värde för det angivna CTime objektet. |
| CTime::GetYear | Returnerar det år som representeras av CTime objektet. |
| CTime::Serialize64 | Serialiserar data till eller från ett arkiv. |
Operatörer
| Namn | Description |
|---|---|
| operator + - | Dessa operatorer lägger till och subtraherar CTimeSpan och CTime objekt. |
| operator +=, -= | Dessa operatorer lägger till och subtraherar ett CTimeSpan objekt till och från det här CTime objektet. |
| operator = | Tilldelningsoperatorn. |
| operator ==, < , osv. | Jämförelseoperatorer. |
Anmärkningar
CTime har ingen basklass.
CTime värden baseras på koordinerad universell tid (UTC), vilket motsvarar Coordinated Universal Time (Greenwich Mean Time, GMT). Mer information om hur tidszonen bestäms finns i Tidshantering .
När du skapar ett CTime objekt anger du parametern nDST till 0 för att ange att standardtiden är i kraft, eller till ett värde som är större än 0 för att indikera att sommartid är i kraft, eller till ett värde som är mindre än noll för att kodkoden för C-körningsbiblioteket beräknar om standardtid eller sommartid tillämpas.
tm_isdst är ett obligatoriskt fält. Om det inte anges är dess värde odefinierat och returvärdet från mktime är oförutsägbart. Om timeptr pekar på en tm-struktur som returnerades av ett tidigare anrop till asctime_s, _gmtime_s eller localtime_s innehåller tm_isdst fältet rätt värde.
En kompletterande klass, CTimeSpan, representerar ett tidsintervall.
Klasserna CTime och CTimeSpan är inte utformade för härledning. Eftersom det inte finns några virtuella funktioner är storleken CTime på och CTimeSpan objekten exakt 8 byte. De flesta medlemsfunktioner är infogade.
Anmärkning
Den övre datumgränsen är 12/31/3000. Den lägre gränsen är 1/1/1970 12:00:00 GMT.
Mer information om hur du använder CTimefinns i artiklarna Datum och tid samt Tidshantering i Run-Time-biblioteksreferensen.
Anmärkning
Strukturen CTime ändrades från MFC 7.1 till MFC 8.0. Om du serialiserar en CTime struktur med hjälp av operatorn << under MFC 8.0 eller en senare version kan den resulterande filen inte läsas på äldre versioner av MFC.
Kravspecifikation
Rubrik: atltime.h
CTime-jämförelseoperatorer
Jämförelseoperatorer.
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();
Parameterar
time
Det CTime objekt som ska jämföras.
Returvärde
Dessa operatorer jämför två absoluta tider och returnerar TRUE om villkoret är sant. annars FALSKT.
Example
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
Skapar ett nytt CTime objekt som initierats med den angivna tiden.
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();
Parameterar
timeSrc
Anger ett CTime objekt som redan finns.
time
Ett __time64_t tidsvärde, vilket är antalet sekunder efter den 1 januari 1970 UTC. Observera att detta kommer att justeras till din lokala tid. Om du till exempel är i New York och skapar ett CTime objekt genom att skicka en parameter på 0 returnerar CTime::GetMonth 12.
nYear, nMonth, nDay, nHour, nMin, nSec
Anger datum- och tidsvärdena som ska kopieras till det nya CTime objektet.
nDST
Anger om sommartid är i kraft. Kan ha något av tre värden:
nDST inställt på 0Standardtid gäller.
nDST inställt på ett värde som är större än 0Daylight-spartiden gäller.
nDST inställt på ett värde som är mindre än 0Standardvärdet. Beräknar automatiskt om standardtid eller sommartid är i kraft.
wDosDate, wDosTime
MS-DOS datum- och tidsvärden som ska konverteras till ett datum-/tidsvärde och kopieras till det nya CTime objektet.
St
En SYSTEMTIME-struktur som ska konverteras till ett datum-/tidsvärde och kopieras till det nya CTime objektet.
Ft
En FILETIME-struktur som ska konverteras till ett datum-/tidsvärde och kopieras till det nya CTime objektet.
dbts
En referens till en DBTIMESTAMP-struktur som innehåller den aktuella lokala tiden.
Anmärkningar
Varje konstruktor beskrivs nedan:
CTime();Konstruerar ett onitialiseratCTimeobjekt. Med den här konstruktorn kan du definieraCTimeobjektmatriser. Du bör initiera sådana matriser med giltiga tider innan du använder.CTime( const CTime& );Konstruerar ett objekt från ettCTimeannatCTimevärde.CTime( __time64_t );Konstruerar ettCTimeobjekt från en __time64_t typ. Den här konstruktorn förväntar sig en UTC-tid och konverterar resultatet till en lokal tid innan resultatet lagras.CTime( int, int, ...);Konstruerar ettCTimeobjekt från lokala tidskomponenter med varje komponent begränsad till följande intervall:Komponent Räckvidd nYear 1970-3000 nMonth 1-12 nDay 1-31 nHour 0-23 nMin 0-59 nSec 0-59 Den här konstruktorn gör lämplig konvertering till UTC. Felsökningsversionen av Microsoft Foundation-klassbiblioteket anger om en eller flera av tidskomponenterna ligger utom räckhåll. Du måste verifiera argumenten innan du anropar. Konstruktorn förväntar sig en lokal tid.
CTime( WORD, WORD );Konstruerar ettCTimeobjekt från de angivna MS-DOS datum- och tidsvärdena. Konstruktorn förväntar sig en lokal tid.CTime( const SYSTEMTIME& );Konstruerar ettCTimeobjekt från enSYSTEMTIMEstruktur. Konstruktorn förväntar sig en lokal tid.CTime( const FILETIME& );Konstruerar ettCTimeobjekt från enFILETIMEstruktur. Du kommer förmodligen inte att användaCTime FILETIMEinitieringen direkt. Om du använder ettCFileobjekt för att ändra en filCFile::GetStatushämtar du tidsstämpeln för filen genom ettCTimeobjekt som initierats med enFILETIMEstruktur. Den här konstruktorn förutsätter en tid baserat på UTC och konverterar automatiskt värdet till lokal tid innan resultatet lagras.Anmärkning
Konstruktorn som använder
DBTIMESTAMPparametern är endast tillgänglig när OLEDB.h ingår.
Mer information finns i SYSTEMTIME - och FILETIME-strukturen i Windows SDK. Se även postenMS-DOS Datum och tid i Windows SDK.
Example
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
Anropa den här medlemsfunktionen för att skapa en formaterad representation av datum-tid-värdet.
CString Format(LPCTSTR pszFormat) const;
CString Format(UINT nFormatID) const;
Parameterar
pszFormat
En formateringssträng som liknar formateringssträngen printf . Formateringskoder som föregås av ett procenttecken (%) ersätts av motsvarande CTime komponent. Andra tecken i formateringssträngen kopieras oförändrade till den returnerade strängen. Se körningsfunktionen strftime för en lista över formateringskoder.
nFormatID
ID:t för strängen som identifierar det här formatet.
Returvärde
En CString som innehåller den formaterade tiden.
Anmärkningar
Om statusen för det här CTime objektet är null är returvärdet en tom sträng.
Den här metoden genererar ett undantag om datum-tidsvärdet till formatet inte sträcker sig från midnatt, 1 januari 1970 till 31 december 3000 Universal Coordinated Time (UTC).
Example
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
Genererar en formaterad sträng som motsvarar det här CTime objektet.
CString FormatGmt(LPCTSTR pszFormat) const;
CString FormatGmt(UINT nFormatID) const;
Parameterar
pszFormat
Anger en formateringssträng som liknar formateringssträngen printf . Mer information finns i körningsfunktionen strftime .
nFormatID
ID:t för strängen som identifierar det här formatet.
Returvärde
En CString som innehåller den formaterade tiden.
Anmärkningar
Tidsvärdet konverteras inte och återspeglar därmed UTC.
Den här metoden genererar ett undantag om datum-tidsvärdet till formatet inte sträcker sig från midnatt, 1 januari 1970 till 31 december 3000 Universal Coordinated Time (UTC).
Example
Se exemplet för CTime::Format.
CTime::GetAsDBTIMESTAMP
Anropa den här medlemsfunktionen för att konvertera tidsinformationen CTime som lagras i objektet till en Win32-kompatibel DBTIMESTAMP-struktur.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& dbts) const throw();
Parameterar
dbts
En referens till en DBTIMESTAMP-struktur som innehåller den aktuella lokala tiden.
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Lagrar den resulterande tiden i den refererade dbts-strukturen . Datastrukturen DBTIMESTAMP som initieras av den här funktionen har dess fraction medlem inställd på noll.
Example
CTime t = CTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // Retrieves the time in t into the ts structure
CTime::GetAsSystemTime
Anropa den här medlemsfunktionen för att konvertera tidsinformationen CTime som lagras i objektet till en Win32-kompatibel SYSTEMTIME-struktur .
bool GetAsSystemTime(SYSTEMTIME& st) const throw();
Parameterar
timeDest
En referens till en SYSTEMTIME-struktur som innehåller objektets konverterade datum/tid-värde CTime .
Returvärde
SANT om det lyckas; annars FALSKT.
Anmärkningar
GetAsSystemTime lagrar den resulterande tiden i den refererade timeDest-strukturen . Datastrukturen SYSTEMTIME som initieras av den här funktionen har dess wMilliseconds medlem inställd på noll.
Example
// Convert CTime to FILETIME
CTime time(CTime::GetCurrentTime());
SYSTEMTIME timeDest;
time.GetAsSystemTime(timeDest);
FILETIME fileTime;
::SystemTimeToFileTime(&timeDest, &fileTime);
CTime::GetCurrentTime
Returnerar ett CTime objekt som representerar den aktuella tiden.
static CTime WINAPI GetCurrentTime() throw();
Anmärkningar
Returnerar det aktuella systemets datum och tid i Coordinated Universal Time (UTC).
Example
CTime t = CTime::GetCurrentTime();
CTime::GetDay
Returnerar den dag som representeras av CTime objektet.
int GetDay() const throw();
Returvärde
Returnerar dagen i månaden, baserat på lokal tid, i intervallet 1 till 31.
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern, statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
// 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
Returnerar veckodagen som representeras av objektet CTime .
int GetDayOfWeek() const throw();
Returvärde
Returnerar veckodagen baserat på lokal tid. 1 = söndag, 2 = måndag, till 7 = lördag.
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
// 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
Hämtar en struct tm som innehåller en nedbrytning av tiden i det här CTime objektet.
struct tm* GetGmtTm(struct tm* ptm) const;
Parameterar
ptm
Pekar på en buffert som tar emot tidsdata. Om den här pekaren är NULL genereras ett undantag.
Returvärde
En pekare till en ifylld struct tm enligt definitionen i inkluderingsfilen TIME.H. Se gmtime, _gmtime32, _gmtime64 för strukturlayouten.
Anmärkningar
GetGmtTm returnerar UTC.
ptm kan inte vara NULL. Om du vill återgå till det gamla beteendet, där ptm kan vara NULL för att indikera att en intern, statiskt allokerad buffert ska användas, så odefiniera _SECURE_ATL.
Example
// 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
Returnerar timmen som representeras av CTime objektet.
int GetHour() const throw();
Returvärde
Returnerar timmen, baserat på lokal tid, i intervallet 0 till och med 23.
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
// 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
Hämtar en struct tm som innehåller en nedbrytning av tiden i det här CTime objektet.
struct tm* GetLocalTm(struct tm* ptm) const;
Parameterar
ptm
Pekar på en buffert som tar emot tidsdata. Om den här pekaren är NULL genereras ett undantag.
Returvärde
En pekare till en ifylld struct tm enligt definitionen i inkluderingsfilen TIME.H. Se gmtime, _gmtime32, _gmtime64 för strukturlayouten.
Anmärkningar
GetLocalTm returnerar lokal tid.
ptm kan inte vara NULL. Om du vill återgå till det gamla beteendet, där ptm kan vara NULL för att indikera att en intern, statiskt allokerad buffert ska användas, så odefiniera _SECURE_ATL.
Example
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
Returnerar minuten som representeras av CTime objektet.
int GetMinute() const throw();
Returvärde
Returnerar minuten, baserat på lokal tid, i intervallet 0 till och med 59.
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
Se exemplet för GetHour.
CTime::GetMonth
Returnerar den månad som representeras av CTime objektet.
int GetMonth() const throw();
Returvärde
Returnerar månaden, baserat på lokal tid, i intervallet 1 till 12 (1 = januari).
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
Se exemplet för GetDay.
CTime::GetSecond
Returnerar den andra som representeras av CTime objektet.
int GetSecond() const throw();
Returvärde
Returnerar den andra, baserat på lokal tid, i intervallet 0 till 59.
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
Se exemplet för GetHour.
CTime::GetTime
Returnerar ett __time64_t värde för det angivna CTime objektet.
__time64_t GetTime() const throw();
Returvärde
GetTime returnerar antalet sekunder mellan det aktuella CTime objektet och den 1 januari 1970.
Example
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
Returnerar det år som representeras av CTime objektet.
int GetYear();
Returvärde
Returnerar året, baserat på lokal tid, i intervallet 1 januari 1970 till 18 januari 2038 (inklusive).
Anmärkningar
Den här funktionen anropar GetLocalTm, som använder en intern statiskt allokerad buffert. Data i den här bufferten skrivs över på grund av anrop till andra CTime medlemsfunktioner.
Example
Se exemplet för GetDay.
CTime::operator =
Tilldelningsoperatorn.
CTime& operator=(__time64_t time) throw();
Parameterar
time
Det nya datum-/tidsvärdet.
Returvärde
Det uppdaterade CTime objektet.
Anmärkningar
Den här överlagrade tilldelningsoperatorn kopierar källtiden till det här CTime objektet. Den interna tidslagringen i ett CTime objekt är oberoende av tidszonen. Tidszonskonvertering krävs inte under tilldelningen.
CTime::operator +, -
Dessa operatorer lägger till och subtraherar CTimeSpan och CTime objekt.
CTime operator+(CTimeSpan timeSpan) const throw();
CTime operator-(CTimeSpan timeSpan) const throw();
CTimeSpan operator-(CTime time) const throw();
Parameterar
Gått
Objektet CTimeSpan som ska läggas till eller subtraheras.
time
Objektet CTime som ska subtraheras.
Returvärde
Ett CTime eller CTimeSpan -objekt som representerar resultatet av åtgärden.
Anmärkningar
CTime objekt representerar absolut tid, CTimeSpan objekt representerar relativ tid. Med de två första operatorerna kan du lägga till och subtrahera CTimeSpan objekt till och från CTime objekt. Med den tredje operatorn kan du subtrahera ett CTime objekt från ett annat för att ge ett CTimeSpan objekt.
Example
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 +=, -=
Dessa operatorer lägger till och subtraherar ett CTimeSpan objekt till och från det här CTime objektet.
CTime& operator+=(CTimeSpan span) throw();
CTime& operator-=(CTimeSpan span) throw();
Parameterar
Span
Objektet CTimeSpan som ska läggas till eller subtraheras.
Returvärde
Det uppdaterade CTime objektet.
Anmärkningar
Med de här operatorerna kan du lägga till och subtrahera ett CTimeSpan objekt till och från det här CTime objektet.
Example
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
Anmärkning
Den här metoden är endast tillgänglig i MFC-projekt.
Serialiserar data som är associerade med medlemsvariabeln till eller från ett arkiv.
CArchive& Serialize64(CArchive& ar);
Parameterar
Ar
Det CArchive objekt som du vill uppdatera.
Returvärde
Det uppdaterade CArchive objektet.
Se även
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
tid, _time32, _time64
CTimeSpan-klass
hierarkidiagram
Delade ATL/MFC-klasser