Share via

CTime Class

Represents an absolute time and date.

class CTime


CTime does not have a base class.

CTime values are based on coordinated universal time (UTC), which is equivalent to Coordinated Universal time (Greenwich Mean Time, GMT). See Time Management for information about how the time zone is determined.

When you create a CTime object, set the nDST parameter to 0 to indicate that standard time is in effect, or to a value larger than 0 to indicate that daylight saving time is in effect, or to a value less than zero to have the C run-time library code compute whether standard time or daylight saving time is in effect. tm_isdst is a required field. If not set, its value is undefined and the return value from mktime is unpredictable. If timeptr points to a tm structure returned by a previous call to asctime_s, _gmtime_s, or localtime_s, the tm_isdst field contains the correct value.

A companion class, CTimeSpan, represents a time interval.

The CTime and CTimeSpan classes are not designed for derivation. Because there are no virtual functions, the size of CTime and CTimeSpan objects is exactly 8 bytes. Most member functions are inline.


The upper date limit is 12/31/3000. The lower limit is 1/1/1970 12:00:00 AM GMT.

For more information about using CTime, see the articles Date and Time, and Time Management in the Run-Time Library Reference.


The CTime structure changed from MFC 7.1 to MFC 8.0. If you serialize a CTime structure by using the operator << under MFC 8.0 or a later version, the resulting file will not be readable on older versions of MFC.


Header: atltime.h

See Also


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 Class

Hierarchy Chart

Other Resources

CTime Members

ATL/MFC Shared Classes