$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] date_time question
From: Václav Haisman (v.haisman_at_[hidden])
Date: 2008-12-21 11:35:55
Amadeus W.M. wrote, On 21.12.2008 16:31:
> I want to read from stdin files that contain dates and data. The files 
> come from various sources so the dates are in different formats. Of 
> course, the problem is reading the dates. Based on the date_time examples 
> I put together a few lines of code using facets that I thought should 
> work, but it doesn't seem to. Can't tell if I'm way off, or I'm missing 
> something small. 
> 
> 
> #include <boost/date_time/posix_time/posix_time.hpp>
> 
> using namespace boost::posix_time;
> using namespace std;
> 
> int main(int argc, char * argv[])
> {
>     // Create a facet with the expected format.
>     time_input_facet * tfacet=new time_input_facet("%Y/%m/%d %H:%M:%S");
> 
>     ptime pt(not_a_date_time);
>     cin.imbue(locale(cin.getloc(),tfacet));
>     cin >> pt;
>     cout <<  pt << endl;        // pt still not_a_date_time.
> 
>     return 0;
> }
> 
> 
> Compilation:
> 
> 
> g++ -g -Wall -o facets -I/usr/local/include/boost-1_35 -L/usr/local/lib/ 
> facets.C -lboost_date_time-gcc43-mt-1_35
> 
> Run:
> 
> echo "12/20/2008 09:56:00" | ./facets 
Your format string is "%Y/%m/%d %H:%M:%S". The date format and the string you
accept are obviously not compatible.
> not-a-date-time                     # pt unchanged
> 
> 
> Once I sort out how to read dates from stdin (initially with the format 
> hard-coded) I have to figure out how to parse the date and guess the 
> format internally in the program.
> 
> 
> Please help! Thanks!
-- VH