Yes, that helps.  Of course, it would be nice to have the time_from_string use its
internal month table to turn the month string into the correct integer. ;-)
If/when I have time, I may look into how to do that.  I think it would also be
nice to be able to configure (at compile time and/or at run time) the format the
date_time library uses for its simple format.  One choice might be an additonal
(default?) argument to to_simple_string.  Please keep in mind that these are only
suggestions regarding relatively minor nitpicks in what I consider to be a great
library.  If I am not yet annoying you with my pestering questions, could you
point me in the right direction on how I might go about solving the problem with
the operator<< and a default facet?

Thanks for your help.

Phil

P.S. Here is my attempt (approach number 1) at solving the problem.  I modified
date_format_simple.hpp and date_names_put.hpp so that each chooses
month_as_integer as the hard-wired month_format to return.  Any chance on getting
these changes into the next date_time library? :-)

Thus, I have changed simple_format::month_format to be

  //! Describe month format
 static month_format_spec month_format()
  {
//    return month_as_short_string;
      return month_as_integer;
  }

and  date_names_put::do_month_format to be

      //! Default month format
      virtual month_format_spec do_month_format() const
      {
//        return month_as_short_string;
        return month_as_integer;
      }

Jeff Garland wrote:

> On Thu, 26 Jun 2003 14:35:26 -0400, Philip Miller wrote
> > I am trying out the boost 1.30.0 date_time library and am quite pleased
> > with it.  I just came across a "feature" on which I would appreciate
> > some help.  There is an asymmetry when converting a ptime to/from a
> > simple string.  The to_simple_string(ptime) method will output
> > 2002-Jan-01 10:00:01.123456789 but the time_from_string( const
> > std::string& ) methhod will choke on "Jan".  Is this a bug or a
> > feature?  I would like a symmetric pair of functions such that the
> > following code works and t1 == t0.
> >
> > t1 = time_from_string( to_simple_string( t0 ) )
> >
> > I appreciate any feedback.
>
> Well, I guess it is a feature :-(
>
> Apparently there is no existing set of to_string/from functions that
> offer this functionality directly.  So in the short run your
> options are:
>
> 1) write your own version of to_string which is compatible
> 2) Use operator<< with an appropriate date formmatting facet
>
> Number 1 would be something like:
> //WARNING -- never compiled or tested!!
> std::string another_to_string(const boost::posix_time::ptime& t) {
>    using boost::gregorian;
>    date d = t.get_date();
>    std::string s =
> date_time::date_formatter<date,date_time::iso_extended_format>::date_to_string
> (t.get_date());
>    s = s + ' ' + boost::posix_time::to_iso_string(t.time_of_day());
>    return s;
> }
>
> HTH,
>
> Jeff
>   }
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to