[date_time] binary serialization / integer representation
Hello, I would like to serialize date_time types to a binary archive, and/or convert them to, say, a integer types. I see the counted time system does use a 64 bit integer for ptime, but doesn't provide access to it. Is there something available for this use, or should I create a conversion function? Thanks in advance, Cheers, Rutger
I would like to serialize date_time types to a binary archive, and/or convert them to, say, a integer types. I see the counted time system does use a 64 bit integer for ptime, but doesn't provide access to it.
Is there something available for this use, or should I create a conversion function?
#include
Igor R wrote:
#include
Thanks, I am aware of the current serialization support of ptime objects. As far as the docs go, it supports text and xml archives. However, I'm not that interested in (de)serializing to a variable amount of bytes where 8 bytes would be more than sufficient, please see attached. I'm particularly interested in efficient binary serialization of date_time types and/or conversion to integer(s). Cheers, Rutger
I'm particularly interested in efficient binary serialization of date_time types and/or conversion to integer(s).
I also can't see any access to the internal value, so what you can do instead is to make some time_duration, and use it instead of the absolute ptime. Like this: pt::ptime epoch(greg::date(1970, 1, 1)); // or some other reference point pt::time_duration duration = t - epoch; boost::int64_t diff = duration.total_seconds(); // or total_microseconds() or ticks() Similarly, you can reconstruct the ptime later.
Igor R wrote:
I also can't see any access to the internal value, so what you can do instead is to make some time_duration, and use it instead of the absolute ptime. Like this:
pt::ptime epoch(greg::date(1970, 1, 1)); // or some other reference point pt::time_duration duration = t - epoch; boost::int64_t diff = duration.total_seconds(); // or total_microseconds() or ticks() Similarly, you can reconstruct the ptime later.
Thanks, it comes close to a solution, it would take some more work to represent special values. It is kind of reimplementing the counted time system stuff :-/ Perhaps a memcpy() of a ptime will do the trick, too. Cheers, Rutger
participants (2)
-
Igor R
-
Rutger ter Borg