drogonframework/drogon

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

Fermée

#2 534 ouverte le 18 juin 2026

 (0 commentaire) (0 réaction) (0 personne assignée)C++ (1 014 forks)batch import
good first issue

Métriques du dépôt

Stars
 (10 462 étoiles)
Métriques de merge PR
 (Merge moyen 5j 16h) (3 PRs mergées en 30 j)

Description

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 !

Guide contributeur