|
Boost Users : |
Subject: [Boost-users] Boost Date/Time
From: asif saeed (asif.lse2_at_[hidden])
Date: 2012-02-13 06:01:21
Hi,
I get a run-time error when I run the following code;
std::string LocaleFormattedDateTime (::boost::posix_time::ptime pt)
{
std::string s;
std::ostringstream ss;
//::boost::posix_time::time_facet * tf = new
::boost::posix_time::time_facet;
::boost::posix_time::time_facet tf;
//std::locale custom_locale (std::locale(""), tf);
std::locale custom_locale (std::locale(""), &tf);
// custom_locale takes ownership of the tf facet
ss.imbue (custom_locale);
//(*tf).format("%Y%m%d-%H%M%S-%f"); // date time
tf.format("%Y%m%d-%H%M%S-%f"); // date time
ss << pt;
// don't explicitly delete tf - what's wrong with a stack variable? why
this runtime error? What is the point of new() above and
//what if I don't delete allocated
memory here.
return ss.str();
}
void CurrentDateTimeWithMicroseconds(char s[], int sz = 100)
{
using namespace boost::posix_time;
using namespace std;
using boost::date_time::date_facet;
ptime t = microsec_clock::local_time();
ostringstream ss;
//time_facet *df = new time_facet();
time_facet df;
//std::locale loc (std::locale(""), df);
std::locale loc (std::locale(""), &df);
ss << LocaleFormattedDateTime(t) ;
memset(s,0,sz);
strcpy(s,ss.str().c_str());
}
Can you tell me the problem?
I modified this code after copying this from some online source.
Thanks in advance, Asif
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net