CTime-klass

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 onitialiserat CTime objekt. Med den här konstruktorn kan du definiera CTime objektmatriser. Du bör initiera sådana matriser med giltiga tider innan du använder.

  • CTime( const CTime& ); Konstruerar ett objekt från ett CTime annat CTime värde.

  • CTime( __time64_t ); Konstruerar ett CTime objekt 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 ett CTime objekt 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 ett CTime objekt från de angivna MS-DOS datum- och tidsvärdena. Konstruktorn förväntar sig en lokal tid.

  • CTime( const SYSTEMTIME& ); Konstruerar ett CTime objekt från en SYSTEMTIME struktur. Konstruktorn förväntar sig en lokal tid.

  • CTime( const FILETIME& ); Konstruerar ett CTime objekt från en FILETIME struktur. Du kommer förmodligen inte att använda CTime FILETIME initieringen direkt. Om du använder ett CFile objekt för att ändra en fil CFile::GetStatus hämtar du tidsstämpeln för filen genom ett CTime objekt som initierats med en FILETIME struktur. 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 DBTIMESTAMP parametern ä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