Index: /XIOS/trunk/src/config/file_attribute.conf
===================================================================
--- /XIOS/trunk/src/config/file_attribute.conf	(revision 1045)
+++ /XIOS/trunk/src/config/file_attribute.conf	(revision 1046)
@@ -27,3 +27,4 @@
 DECLARE_ENUM4(timeseries,    none, only, both, exclusive)
 DECLARE_ATTRIBUTE(StdString, ts_prefix)
-
+DECLARE_ATTRIBUTE(StdString, time_stamp_name)
+DECLARE_ATTRIBUTE(StdString, time_stamp_format)
Index: /XIOS/trunk/src/io/nc4_data_output.cpp
===================================================================
--- /XIOS/trunk/src/io/nc4_data_output.cpp	(revision 1045)
+++ /XIOS/trunk/src/io/nc4_data_output.cpp	(revision 1046)
@@ -16,8 +16,9 @@
       /// ////////////////////// Dfinitions ////////////////////// ///
       CNc4DataOutput::CNc4DataOutput
-         (const StdString & filename, bool exist)
+         (CFile* file, const StdString & filename, bool exist)
             : SuperClass()
             , SuperClassWriter(filename, exist)
             , filename(filename)
+            , file(file)
       {
         SuperClass::type = MULTI_FILE;
@@ -25,5 +26,5 @@
 
       CNc4DataOutput::CNc4DataOutput
-         (const StdString & filename, bool exist, bool useClassicFormat, bool useCFConvention,
+         (CFile* file, const StdString & filename, bool exist, bool useClassicFormat, bool useCFConvention,
           MPI_Comm comm_file, bool multifile, bool isCollective, const StdString& timeCounterName)
             : SuperClass()
@@ -32,4 +33,5 @@
             , filename(filename)
             , isCollective(isCollective)
+            , file(file)
       {
         SuperClass::type = (multifile) ? MULTI_FILE : ONE_FILE;
@@ -1971,8 +1973,13 @@
          struct tm * timeinfo = NULL;
          char buffer [buffer_size];
-
+         StdString formatStr;
+         if (file->time_stamp_format.isEmpty()) formatStr="%Y-%b-%d %H:%M:%S %Z" ;
+         else formatStr=file->time_stamp_format;
+
+//         time ( &rawtime );
+//         timeinfo = localtime ( &rawtime );
          time ( &rawtime );
-         timeinfo = localtime ( &rawtime );
-         strftime (buffer, buffer_size, "%Y-%b-%d %H:%M:%S %Z", timeinfo);
+         timeinfo = gmtime ( &rawtime );
+         strftime (buffer, buffer_size, formatStr.c_str(), timeinfo);
 
          return (StdString(buffer));
@@ -2010,8 +2017,8 @@
               field->getOperationTimeType() != func::CFunctor::once)
           {
-			 double factorUnit;
-			 if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days)
-			   factorUnit=context->getCalendar()->getDayLengthInSeconds() ; 
-			 else factorUnit=1 ;
+            double factorUnit;
+            if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days)
+            factorUnit=context->getCalendar()->getDayLengthInSeconds() ;
+            else factorUnit=1 ;
             field->resetNStep(getRecordFromTime(field->last_Write_srv,factorUnit) + 1);
           }
@@ -2561,5 +2568,8 @@
            SuperClassWriter::addAttribute("Conventions", conventions);
            // SuperClassWriter::addAttribute("production" , production);
-           SuperClassWriter::addAttribute("timeStamp"  , timeStamp);
+           StdString timeStampStr ;
+           if (file->time_stamp_name.isEmpty()) timeStampStr="timeStamp" ;
+           else timeStampStr=file->time_stamp_name ;
+           SuperClassWriter::addAttribute(timeStampStr, timeStamp);
          }
          catch (CNetCdfException& e)
Index: /XIOS/trunk/src/io/nc4_data_output.hpp
===================================================================
--- /XIOS/trunk/src/io/nc4_data_output.hpp	(revision 1045)
+++ /XIOS/trunk/src/io/nc4_data_output.hpp	(revision 1046)
@@ -23,7 +23,7 @@
             /// Constructeurs ///
             CNc4DataOutput
-               (const StdString & filename, bool exist);
+               (CFile* file, const StdString & filename, bool exist);
             CNc4DataOutput
-               (const StdString & filename, bool exist, bool useClassicFormat,
+               (CFile* file, const StdString & filename, bool exist, bool useClassicFormat,
                 bool useCFConvention,
                 MPI_Comm comm_file, bool multifile, bool isCollective = true,
Index: /XIOS/trunk/src/node/file.cpp
===================================================================
--- /XIOS/trunk/src/node/file.cpp	(revision 1045)
+++ /XIOS/trunk/src/node/file.cpp	(revision 1046)
@@ -463,5 +463,5 @@
          if (isOpen) data_out->closeFile();
 
-        data_out = shared_ptr<CDataOutput>(new CNc4DataOutput(oss.str(), append, useClassicFormat, useCFConvention,
+        data_out = shared_ptr<CDataOutput>(new CNc4DataOutput(this, oss.str(), append, useClassicFormat, useCFConvention,
                                                               fileComm, multifile, isCollective, time_counter_name));
         isOpen = true;
Index: /XIOS/trunk/src/transformation/domain_algorithm_interpolate.cpp
===================================================================
--- /XIOS/trunk/src/transformation/domain_algorithm_interpolate.cpp	(revision 1045)
+++ /XIOS/trunk/src/transformation/domain_algorithm_interpolate.cpp	(revision 1046)
@@ -677,5 +677,5 @@
 /*! Redefined some functions of CONetCDF4 to make use of them */
 CDomainAlgorithmInterpolate::WriteNetCdf::WriteNetCdf(const StdString& filename, const MPI_Comm comm)
-  : CNc4DataOutput(filename, false, false, true, comm, false, true) {}
+  : CNc4DataOutput(NULL, filename, false, false, true, comm, false, true) {}
 int CDomainAlgorithmInterpolate::WriteNetCdf::addDimensionWrite(const StdString& name, 
                                                                 const StdSize size)
