c++datedatetimelocaltimectime

C++ - 'localtime' this function or variable may be unsafe


I am writing a simple logging class in C++ for learning purposes. My code contains a function that returns a string of today's date. However, I get a compiler error whenever 'localtime' is called.

std::string get_date_string(time_t *time) {
    struct tm *now = localtime(time);
    std::string date = std::to_string(now->tm_mday) + std::to_string(now->tm_mon) + std::to_string(now->tm_year);
    return date;
}

I have tried using #define _CRT_SECURE_NO_WARNINGS. It didn't work and the same error appeared. I also tried putting _CRT_SECURE_NO_WARNINGS inside the preprocessor definitions in the project properties. This gave an unresolved external error.

Does anyone have any ideas on what to do?


Solution

  • Try to #define _CRT_SECURE_NO_WARNINGS before #include any other header files, like the following code

    #define _CRT_SECURE_NO_WARNINGS
    #include <ctime>
    //your code