The serialization code for text archives (inluding xml) should be setting the local to an included "null locale" just to address situations like this. I'm not sure why its not working here. Robert Ramey Jeff Garland wrote:
On Sat, 28 May 2005 02:10:02 +0200, Paolo Coletta wrote
I'm not sure if this is a bug or if I'm misusing the library. It seems that serializing boost::posix_time_ptime fails when using non-standard locale (Windows Xp OS - vc 7.1 compiler - boost updated from CVS few days ago).
As an example, try adding
std::locale::global( std::locale( "en" ) );
as the first line of the testtime_serialize.cpp; this causes the test to fail when doing
ia >> pt2;
I tried to understand what was happening, and it seems to me that the problem is in keeping into account locale when serializing, while ignoring it while unserializing. In greg_serialize.hpp to_iso_string(d) may generate something like "2,0050527"; the method from_undelimited_string(ds) used to load the serialized date, expects a 4,2,2 format.
It looks like the problem is that the stream output is including a thousands seperator when it shouldn't. The serialization should be 20050527 with no number seperators. So it appears that we cannot depend on the stream not using the thousands separtor in date_time/date_formatting.hpp (line 81) where the year is actully output:
std::basic_ostringstream<charT> ss; ss << ymd.year;
We'll look into fixing this...
Jeff