drogonframework/drogon

Same issue than trantor::Date https://github.com/an-tao/trantor/pull/140

Chiusa

#2534 aperta il 18 giu 2026

 (0 commenti) (0 reazioni) (0 assegnatari)C++ (1014 fork)batch import
good first issue

Metriche repository

Star
 (10.462 stelle)
Metriche merge PR
 (Merge medio 5g 16h) (3 PR mergiate in 30 g)

Descrizione

Hi,

To take DST into account, mktime need tm.is_dst to be set to -1: https://en.cppreference.com/cpp/chrono/c/mktime Notes If the std::tm object was obtained from std::get_time or the POSIX [strptime](https://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html), the value of tm_isdst is indeterminate, and needs to be set explicitly before calling mktime.

The same code from trantor::Date need to be set in src/drogon_ctl/templates/model_cc.csp:

$$<<"            struct tm stm;\n";
$$<<"            memset(&stm,0,sizeof(stm));\n";
$$<<"            strptime(daysStr.c_str(),\"%Y-%m-%d\",&stm);\n";
$$<<"            time_t t = mktime(&stm);\n";

Templates need to be change into:

$$<<"            struct tm stm;\n";
$$<<"            memset(&stm,0,sizeof(stm));\n";
$$<<"            stm.is_dst = -1;\n";
$$<<"            strptime(daysStr.c_str(),\"%Y-%m-%d\",&stm);\n";
$$<<"            time_t t = mktime(&stm);\n";

thanks !

Guida contributor