title: set system date and time within c++ program in linux
body: <p>In my program user selects date and time in an extjs form and then data will be send to the server side (c++ program). In the server program date and time will be applied to the system as below:</p>
  
  <pre><code>int main(){
      string date = "2013-08-28T00:00:00";
      string newtime = "09:12";
      time_t mytime = time(0);
        struct tm* tm_ptr = localtime(&amp;mytime);
  
        if (tm_ptr)
        {
          tm_ptr-&gt;tm_mon  = atoi(date.substr(5,2).c_str()) - 1;
          tm_ptr-&gt;tm_mday = atoi(date.substr(8,2).c_str());
          tm_ptr-&gt;tm_year = atoi(date.substr(0,4).c_str());
          tm_ptr-&gt;tm_min  = atoi(newtime.substr(3,2).c_str());
          tm_ptr-&gt;tm_hour  = atoi(newtime.substr(0,2).c_str());
          printf("%d\n%d\n%d\n%d\n%d\n", tm_ptr-&gt;tm_mon,tm_ptr-&gt;tm_mday,tm_ptr-&gt;tm_year,tm_ptr-&gt;tm_min,tm_ptr-&gt;tm_hour);
          const struct timeval tv = {mktime(tm_ptr), 0};
          settimeofday(&amp;tv, 0);
      }
      return 0;
  }
  </code></pre>
  
  <p>But when running this code system crashes!
  I have another code for applying date and time:</p>
  
  <pre><code>int main(){
      string date = "2013-08-28T00:00:00";
      string newtime = "09:12";
      string newdate = "";
      string monthnum = date.substr(5,2);
      string month = "";
      if(strcmp(monthnum.c_str(),"01") == 0)         month = "Jan";
      else if(strcmp(monthnum.c_str(),"02") == 0)     month = "Feb";
      else if(strcmp(monthnum.c_str(),"03") == 0)     month = "Mar";
      else if(strcmp(monthnum.c_str(),"04") == 0)     month = "Apr";
      else if(strcmp(monthnum.c_str(),"05") == 0)     month = "May";
      else if(strcmp(monthnum.c_str(),"06") == 0)     month = "Jun";
      else if(strcmp(monthnum.c_str(),"07") == 0)     month = "Jul";
      else if(strcmp(monthnum.c_str(),"08") == 0)     month = "Aug";
      else if(strcmp(monthnum.c_str(),"09") == 0)     month = "Sep";
      else if(strcmp(monthnum.c_str(),"10") == 0)     month = "Oct";
      else if(strcmp(monthnum.c_str(),"11") == 0)     month = "Nov";
      else if(strcmp(monthnum.c_str(),"12") == 0)     month = "Dec";
      newdate = "\"" + month + " " + date.substr(8,2) + " " + date.substr(0,4) + " " + newtime + "\"";
      system("date --set newdate");
      return 0;
  }
  </code></pre>
  
  <p>when running this code an error was occurred as below:
  date: invalid date "newdate"</p>
  
  <p>I can't understand the problem of these codes!</p>