Index: design/standard/templates/content/datatype/edit/ezdatetime.tpl
===================================================================
--- design/standard/templates/content/datatype/edit/ezdatetime.tpl	(revision 21161)
+++ design/standard/templates/content/datatype/edit/ezdatetime.tpl	(working copy)
@@ -34,8 +34,13 @@
 <input id="ezcoa-{if ne( $attribute_base, 'ContentObjectAttribute' )}{$attribute_base}-{/if}{$attribute.contentclassattribute_id}_{$attribute.contentclass_attribute_identifier}_minute" class="ezcc-{$attribute.object.content_class.identifier} ezcca-{$attribute.object.content_class.identifier}_{$attribute.contentclass_attribute_identifier}" type="text" name="{$attribute_base}_datetime_minute_{$attribute.id}" size="3" value="{section show=$attribute.content.is_valid}{$attribute.content.minute}{/section}" />
 </div>
 
+<div class="element">
+<label>{'Second'|i18n( 'design/standard/content/datatype' )}:</label>
+<input id="ezcoa-{if ne( $attribute_base, 'ContentObjectAttribute' )}{$attribute_base}-{/if}{$attribute.contentclassattribute_id}_{$attribute.contentclass_attribute_identifier}_second" class="ezcc-{$attribute.object.content_class.identifier} ezcca-{$attribute.object.content_class.identifier}_{$attribute.contentclass_attribute_identifier}" type="text" name="{$attribute_base}_datetime_second_{$attribute.id}" size="3" value="{section show=$attribute.content.is_valid}{$attribute.content.second}{/section}" />
 </div>
 
+</div>
+
 <div class="break"></div>
 
 </div>
Index: kernel/classes/datatypes/ezdatetime/ezdatetimetype.php
===================================================================
--- kernel/classes/datatypes/ezdatetime/ezdatetimetype.php	(revision 21161)
+++ kernel/classes/datatypes/ezdatetime/ezdatetimetype.php	(working copy)
@@ -56,7 +56,7 @@
     /*!
      Private method only for use inside this class
     */
-    function validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, &$contentObjectAttribute )
+    function validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, $second, &$contentObjectAttribute )
     {
         include_once( 'lib/ezutils/classes/ezdatetimevalidator.php' );
 
@@ -68,7 +68,7 @@
             return EZ_INPUT_VALIDATOR_STATE_INVALID;
         }
 
-        $state = eZDateTimeValidator::validateTime( $hour, $minute );
+        $state = eZDateTimeValidator::validateTime( $hour, $minute, $second );
         if ( $state == EZ_INPUT_VALIDATOR_STATE_INVALID )
         {
             $contentObjectAttribute->setValidationError( ezi18n( 'kernel/classes/datatypes',
@@ -88,26 +88,30 @@
              $http->hasPostVariable( $base . '_datetime_month_' . $contentObjectAttribute->attribute( 'id' ) ) and
              $http->hasPostVariable( $base . '_datetime_day_' . $contentObjectAttribute->attribute( 'id' ) ) and
              $http->hasPostVariable( $base . '_datetime_hour_' . $contentObjectAttribute->attribute( 'id' ) ) and
-             $http->hasPostVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) ) )
+             $http->hasPostVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) ) and
+             $http->hasPostVariable( $base . '_datetime_second_' . $contentObjectAttribute->attribute( 'id' ) ) )
         {
             $year   = $http->postVariable( $base . '_datetime_year_' . $contentObjectAttribute->attribute( 'id' ) );
             $month  = $http->postVariable( $base . '_datetime_month_' . $contentObjectAttribute->attribute( 'id' ) );
             $day    = $http->postVariable( $base . '_datetime_day_' . $contentObjectAttribute->attribute( 'id' ) );
             $hour   = $http->postVariable( $base . '_datetime_hour_' . $contentObjectAttribute->attribute( 'id' ) );
             $minute = $http->postVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) );
+            $second = $http->postVariable( $base . '_datetime_second_' . $contentObjectAttribute->attribute( 'id' ) );
             $classAttribute =& $contentObjectAttribute->contentClassAttribute();
 
             if ( $year == '' or
                  $month == '' or
                  $day == '' or
                  $hour == '' or
-                 $minute == '' )
+                 $minute == '' or
+                 $second == '' )
             {
                 if ( !( $year == '' and
                         $month == '' and
                         $day == '' and
                         $hour == '' and
-                        $minute == '') or
+                        $minute == '' and
+                        $second == '' ) or
                      ( !$classAttribute->attribute( 'is_information_collector' ) and
                        $contentObjectAttribute->validateIsRequired() ) )
                 {
@@ -120,7 +124,7 @@
             }
             else
             {
-                return $this->validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, $contentObjectAttribute );
+                return $this->validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, $second, $contentObjectAttribute );
             }
         }
         else
@@ -136,25 +140,27 @@
              $http->hasPostVariable( $base . '_datetime_month_' . $contentObjectAttribute->attribute( 'id' ) ) and
              $http->hasPostVariable( $base . '_datetime_day_' . $contentObjectAttribute->attribute( 'id' ) ) and
              $http->hasPostVariable( $base . '_datetime_hour_' . $contentObjectAttribute->attribute( 'id' ) ) and
-             $http->hasPostVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) ) )
+             $http->hasPostVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) ) and
+             $http->hasPostVariable( $base . '_datetime_second_' . $contentObjectAttribute->attribute( 'id' ) ) )
         {
             $year   = $http->postVariable( $base . '_datetime_year_' . $contentObjectAttribute->attribute( 'id' ) );
             $month  = $http->postVariable( $base . '_datetime_month_' . $contentObjectAttribute->attribute( 'id' ) );
             $day    = $http->postVariable( $base . '_datetime_day_' . $contentObjectAttribute->attribute( 'id' ) );
             $hour   = $http->postVariable( $base . '_datetime_hour_' . $contentObjectAttribute->attribute( 'id' ) );
             $minute = $http->postVariable( $base . '_datetime_minute_' . $contentObjectAttribute->attribute( 'id' ) );
+            $second = $http->postVariable( $base . '_datetime_second_' . $contentObjectAttribute->attribute( 'id' ) );
 
             $dateTime = new eZDateTime();
             $contentClassAttribute =& $contentObjectAttribute->contentClassAttribute();
             if ( ( $year == '' and $month == ''and $day == '' and
-                   $hour == '' and $minute == '' ) or
+                   $hour == '' and $minute == '' and $second == '' ) or
                  !checkdate( $month, $day, $year ) or $year < 1970 )
             {
                     $dateTime->setTimeStamp( 0 );
             }
             else
             {
-                $dateTime->setMDYHMS( $month, $day, $year, $hour, $minute, 0 );
+                $dateTime->setMDYHMS( $month, $day, $year, $hour, $minute, $second );
             }
 
             $contentObjectAttribute->setAttribute( 'data_int', $dateTime->timeStamp() );
@@ -203,7 +209,8 @@
             }
             else
             {
-                return $this->validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, $contentObjectAttribute );
+                $second = 0;
+                return $this->validateDateTimeHTTPInput( $day, $month, $year, $hour, $minute, $second, $contentObjectAttribute );
             }
         }
         else
@@ -348,6 +355,11 @@
         {
             $content['minute'] = $type->attributeValue( 'value' );
         }
+        $type = $root->elementByName( 'second' );
+        if ( $type )
+        {
+            $content['second'] = $type->attributeValue( 'second' );
+        }
         return $content;
     }
 
@@ -357,7 +369,8 @@
                       'month' => '',
                       'day' => '',
                       'hour' => '',
-                      'minute' => '' );
+                      'minute' => '',
+                      'second' => '' );
     }
 
     /*!
@@ -382,7 +395,7 @@
             {
                 $adjustments = eZDateTimeType::classAttributeContent( $contentClassAttribute );
                 $value = new eZDateTime();
-                $value->adjustDateTime( $adjustments['hour'], $adjustments['minute'], 0, $adjustments['month'], $adjustments['day'], $adjustments['year'] );
+                $value->adjustDateTime( $adjustments['hour'], $adjustments['minute'], $adjustments['second'], $adjustments['month'], $adjustments['day'], $adjustments['year'] );
                 $contentObjectAttribute->setAttribute( "data_int", $value->timeStamp() );
             }
             else
@@ -423,7 +436,8 @@
                       'month' => 'month',
                       'day' => 'day',
                       'hour' => 'hour',
-                      'minute' => 'minute' );
+                      'minute' => 'minute',
+                      'second' => 'second' );
     }
 
 
Index: lib/ezlocale/classes/ezdatetime.php
===================================================================
--- lib/ezlocale/classes/ezdatetime.php	(revision 21161)
+++ lib/ezlocale/classes/ezdatetime.php	(working copy)
@@ -126,6 +126,7 @@
         return array( 'timestamp',
                       'hour',
                       'minute',
+                      'second',
                       'year',
                       'month',
                       'day',
@@ -154,6 +155,11 @@
             $minute = $this->minute();
             return $minute;
         }
+        else if ( $name == 'second' )
+        {
+            $second = $this->second();
+            return $second;
+        }
         else if ( $name == 'day'  )
         {
             $day = $this->day();
Index: lib/ezutils/classes/ezdatetimevalidator.php
===================================================================
--- lib/ezutils/classes/ezdatetimevalidator.php	(revision 21161)
+++ lib/ezutils/classes/ezdatetimevalidator.php	(working copy)
@@ -60,22 +60,23 @@
         return EZ_INPUT_VALIDATOR_STATE_ACCEPTED;
     }
 
-    function validateTime( $hour, $minute )
+    function validateTime( $hour, $minute, $second = '0' )
     {
         if( preg_match( '/\d+/', trim( $hour )   ) &&
             preg_match( '/\d+/', trim( $minute ) ) &&
-            $hour >= 0 && $minute >= 0 &&
-            $hour < 24 && $minute < 60 )
+            preg_match( '/\d+/', trim( $second ) ) &&
+            $hour >= 0 && $minute >= 0 && $second >= 0 &&
+            $hour < 24 && $minute < 60 && $second < 60 )
         {
             return EZ_INPUT_VALIDATOR_STATE_ACCEPTED;
         }
         return EZ_INPUT_VALIDATOR_STATE_INVALID;
     }
 
-    function validateDateTime( $day, $month, $year, $hour, $minute )
+    function validateDateTime( $day, $month, $year, $hour, $minute, $second = 0 )
     {
         $check = checkdate( $month, $day, $year );
-        $datetime = mktime( $hour, $minute, 0, $month, $day, $year );
+        $datetime = mktime( $hour, $minute, $second, $month, $day, $year );
         if ( !$check or
              $year < 1970 or
              $datetime === false or
