Ansatz um boost ptime in long zu konvertieren
-
Hallo zusammen,
ich suche analog zu javas System.currentTimeMillies
einen Ansatz welcher mir plattform unabhängig sowohl linux als auch windows bedienen kann.
Aus diesem Grund habe ich mich für boost entschieden, da diese ohnehin im Projekt verwendet wird und noost dazu in der Lage ist.
Aufgrund von Interface Beschränkungen benötige ich diesen Zeitstempel in einem long Wert und nicht in boost ptime.
Da ich bislang leider nicht fündig geworden bin und ich diese Frage oftmals unbeantwortet vorfand benötige ich einen Ansatz.
Kurz gesagt ich möchte den Datentyp ptime von boost in einen long konvertieren da dieser mit json seraliziert wird.
Bin für Hinweise dankbar!
-
Wenn Du mit long sowas wie einen time_t meinst, dann probier es mal damit:
time_t to_time_t(boost::posix_time::ptime t) { using namespace boost::posix_time; ptime base(boost::gregorian::date(1970,1,1)); time_duration::sec_type x = (t - base).total_seconds(); return time_t(x); }Beachte dabei aber, dass Du je nach Größe Deiner time_t Implementierung den Jahr-2038-Bug bekommen kannst.