Ich habe dieses Stück Code, der in Frankfurt auf einer Maschine ausführt:boost :: day_clock local_day() conundrum
//hardcoding for simplicity but these get passed
int year = 2016;
int month = 05;
int day = 6;
boost::gregorian::date gdToday (boost::gregorian::day_clock::local_day());
LOG(DEBUG, 0) << " today=" << gdToday;
if (boost::gregorian::date(year, month, day) > gdToday)
{
// log
return;
}
In meinem log, ich sehe dies: 2016-05-06 02:40 : 40.479057 | DEBUG | today = 2016-Mai-05
Ich weiß, dass der Log-Zeitstempel in UTC ist. Ich nehme an, dass day_clock :: local_day() mir die MESZ Zeit gibt.
So 2016-05-06 02:40 UTC wird 2016-05-06 04:40 sein. Aber warum gibt mir GdToday noch 2016-Mai-05? Aus diesem Grund schlägt der If-Vergleich fehl.
Ich habe versucht, den Boost-Doc zu lesen, aber immer noch nicht viel Ahnung. Könnte es sein boost :: gregorian :: date :: operator < <. Ich denke nicht, dass die Verwendung von day_clock :: universal_day() auch nützlich wäre.
Irgendwelche Hinweise oder Ideen? Danke !!
Das ist ein bisschen albern. Jetzt macht der Schnitt die Antwort (meistens) ungültig, aber die Frage ist immer noch ein einfacher "Tippfehler" ("thinko", wenn du willst). Ich stimme zu schließen dann – sehe