Hi Dean, thanks for the answer. Since, I know the format of the date strings I could also use boost::regex for the general format and then feeding a date object with the values. If I get an exception during the date object contruction I know that the user provided me with garbage. Here is some code: // date format: mm-dd-yyyy boost::regex oDateReg( "\\d{2}-\\d{2}-\\d{4}" ); std::string strDate( "11-33-1997" ); if( boost::regex_match( strDate , oDateReg )) { try { std::string strMonth = strDate.substr( 0, 2 ); std::string strDay = strDate.substr( 3, 2 ); std::string strYear = strDate.substr( 6, 4 ); unsigned int nYear = boost::lexical_cast<unsigned int>(strYear); unsigned int nMonth = boost::lexical_cast<unsigned int>(strMonth); unsigned int nDay = boost::lexical_cast<unsigned int>(strDay); date d( nYear, nMonth, nDay ); date::ymd_type ymd = d.year_month_day(); } catch( std::out_of_range oEx ) { std::cout << "Error: " << oEx.what() << std::endl; } } Any thoughts on that? Thanks again, Christian