Process date format string submission.
function system_date_formats_form_submit($form, &$form_state) {
$date = new DrupalDateTime();
$pattern_type = $date
->canUseIntl() ? DrupalDateTime::INTL : DrupalDateTime::PHP;
$format = array();
$format['name'] = check_plain($form_state['values']['date_format_name']);
$format['pattern'][$pattern_type] = trim($form_state['values']['date_format_pattern']);
$format['locales'] = !empty($form_state['values']['date_langcode']) ? $form_state['values']['date_langcode'] : array();
// Formats created in the UI are not locked.
$format['locked'] = 0;
system_date_format_save($form_state['values']['date_format_id'], $format);
if (!empty($form_state['values']['date_format_id'])) {
drupal_set_message(t('Custom date format updated.'));
}
else {
drupal_set_message(t('Custom date format added.'));
}
$form_state['redirect'] = 'admin/config/regional/date-time/formats';
}