drogonframework/drogon
Same issue than trantor::Date https://github.com/an-tao/trantor/pull/140
Geschlossen
#2.534 geöffnet am 18.06.2026
good first issue
Repository-Metriken
- Stars
- (10.462 Sterne)
- PR-Merge-Metriken
- (Durchschn. Merge 5T 16h) (3 gemergte PRs in 30 T)
Beschreibung
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 !