=== modified file 'sites/all/modules/date/date/date.module'
--- sites/all/modules/date/date/date.module	2009-09-17 18:53:14 +0000
+++ sites/all/modules/date/date/date.module	2010-07-15 22:48:11 +0000
@@ -221,6 +221,11 @@ function date_field_formatter_info() {
     'default' => array('label' => t('Default'),
       'field types' => array('date', 'datestamp', 'datetime'),
       'multiple values' => CONTENT_HANDLE_CORE),
+    // Regular formatters output HTML tags, which isn't good for a.o. feed-style views.
+    // Add plaintext formatters too.
+    'default_plain' => array('label' => t('Default') . ' ' . t('(no HTML)'),
+      'field types' => array('date', 'datestamp', 'datetime'),
+      'multiple values' => CONTENT_HANDLE_CORE),
     'format_interval' => array('label' => t('As Time Ago'),
       'field types' => array('date', 'datestamp', 'datetime'),
       'multiple values' => CONTENT_HANDLE_CORE),
@@ -234,6 +239,12 @@ function date_field_formatter_info() {
         'field types' => array('date', 'datestamp', 'datetime'),
         'multiple values' => CONTENT_HANDLE_CORE,
       );
+      $formatters[$type . '_plain'] = array(
+        'label' => $type_info['title'] . ' ' . t('(no HTML)'),
+        'field types' => array('date', 'datestamp', 'datetime'),
+        'multiple values' => CONTENT_HANDLE_CORE,
+      );
+
     }
   }
 
@@ -271,6 +282,9 @@ function date_theme() {
     'date_formatter_default' => $base + array(
       'arguments' => array('element' => NULL), 
       'function' => 'theme_date_display_combination'),
+    'date_formatter_default_plain' => $base + array(
+      'arguments' => array('element' => NULL),
+      'function' => 'theme_date_display_combination'),
     'date_formatter_format_interval' => $base + array(
       'arguments' => array('element' => NULL), 
       'function' => 'theme_date_format_interval'),
@@ -293,6 +307,11 @@ function date_theme() {
           'arguments' => array('element' => NULL), 
           'function' => 'theme_date_display_combination',
         );
+        // add _plain format (see date_field_formatter_info())
+        $themes['date_formatter_' . $type . '_plain'] = $base + array(
+          'arguments' => array('element' => NULL),
+          'function' => 'theme_date_display_combination',
+        );
       }
     }
   }
@@ -334,6 +353,9 @@ function date_formatter_process($element
   $fields = content_fields();
   $field = $fields[$field_name];
   $formatter = $element['#formatter'];
+  if (substr($element['#formatter'], -6) == '_plain') {
+    $formatter = substr($element['#formatter'], 0, strlen($element['#formatter']) - 6);
+  }
   $format = date_formatter_format($formatter, $field_name);
   $item = $element['#item'];
   $timezone = isset($item['timezone']) ? $item['timezone'] : '';

=== modified file 'sites/all/modules/date/date/date.theme'
--- sites/all/modules/date/date/date.theme	2009-07-30 20:23:56 +0000
+++ sites/all/modules/date/date/date.theme	2010-07-15 22:47:27 +0000
@@ -124,13 +124,15 @@ function theme_date_display_combination(
   $date1 = str_replace($timezone, '', $date1);
   $date2 = str_replace($timezone, '', $date2);
    
+  $format_plain = (substr($element['#formatter'], -6) == '_plain');
+
   // No date values, display nothing.
   if (empty($date1) && empty($date2)) {
     $output .= '';
   }
   // From and To dates match or there is no To date, display a complete single date.
   elseif ($date1 == $date2 || empty($date2)) {
-    $output .= theme('date_display_single', $date1, $timezone);
+    $output .= theme('date_display_single', $date1, $timezone, $format_plain);
   }
   // Same day, different times, don't repeat the date but show both From and To times.
   elseif (date_has_time($field['granularity']) && $dates['value']['formatted_date'] == $dates['value2']['formatted_date']) {
@@ -143,21 +145,27 @@ function theme_date_display_combination(
     $time2 = preg_replace('([\)\]]$)', '', $time2);
     $time = theme('date_display_range', $time1, $time2);
     $replaced = str_replace($time1, $time, $date1);
-    $output .= theme('date_display_single', $replaced, $timezone);
+    $output .= theme('date_display_single', $replaced, $timezone, $format_plain);
   }
   // Different days, display both in their entirety.
   else {
-    $output .= theme('date_display_range', $date1, $date2, $timezone);
+    $output .= theme('date_display_range', $date1, $date2, $timezone, $format_plain);
   }
   
   return $output;
 }
 
-function theme_date_display_single($date, $timezone = NULL) {
+function theme_date_display_single($date, $timezone = NULL, $plaintext = FALSE) {
+  if ($plaintext) {
+    return $date . $timezone;
+  }
   return '<span class="date-display-single">'. $date . $timezone .'</span>';
 }
 
-function theme_date_display_range($date1, $date2, $timezone = NULL) {
+function theme_date_display_range($date1, $date2, $timezone = NULL, $plaintext = FALSE) {
+  if ($plaintext) {
+    return $date1 . ' - ' . $date2 . $timezone;
+  }
   return '<span class="date-display-start">'. $date1 .'</span>'.
       '<span class="date-display-separator"> - </span>' .
       '<span class="date-display-end">'. $date2 . $timezone. '</span>';

