For humans, the time_t value is unintelligible. The Standard Library defines the struct tm that can represent date and time in a more readable form. The struct tm is declared in the header
struct tm { int tm_sec; // the number of elapsed seconds in the minute int tm_min; // the number of elapsed minutes in the hour int tm_hour; // the number of elapsed hours in the day (0-23) int tm_mday; / /the number of elapsed days in the month (1-31) int tm_mon; // the number of elapsed months in the year (0-11) int tm_year; //the numbers of elapsed years since 1900 int tm_wday; // the number of elapsed days in the week since Sunday (0-6) int tm_yday; //the number of the elapsed days in the year (0-365) int tm_isdst; // equals 1 if daylight savings is in effect, zero if not, -1 if unknown };
To fill a tm object with the local time, you use the standard function
struct tm* localtime (const time_t *pt);
The localtime() function takes a pointer to a valid time_t object, converts it to a local static tm struct and returns its address. Subsequent invocations of localtime() override the previous value of the local object. This example shows how to fill a tm object with the current local time.
#include using namespace std; int main() { time_t current; tm local; time(¤t ); //get current time_t value local = * (localtime(¤t)); //dereference and assign }