How to set a value for a date field?
To set a value to a date field follow below codes.

Using hook_form_alter

$form["field_event_date"]["und"][0]['#default_value']['value'] = $new_date;


Using hook_node_submit or hook_node_presave (Saving the value to the database)

 function MY_MODULE_node_presave($node) 
  {
      $node-&gt;field_event_date['und'][0]['value'] =  '2014-09-23 00:00:00';
  }


Or if you need to save value of one custom field(defined in hook_form_alter) to another, see below codes. 

function MY_MODULE_node_submit($node, $form, &amp;$form_state) {
  if($node-&gt;type == 'my_node_type') {
    $test_date =  $form['test_date ']['#value'];
    //Ensure that $test_date format is '2014-09-23 00:00:00'
    $node-&gt;field_event_date['und'][0]['value'] =  $test_date ;
   }
}


I think it may help anyone who is searching for the solution.