devxlogo

Converting a time_t Value to a tm Struct

Converting a time_t Value to a tm Struct

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 as follows:

   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   }

devx-admin

Share the Post: