Index: src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java	(revision 6468)
+++ src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java	(revision 6469)
@@ -72,6 +72,7 @@
 import org.dataone.service.types.v1.Permission;
 import org.dataone.service.types.v1.Subject;
 import org.dataone.service.types.v1.SystemMetadata;
+import org.dataone.service.util.DateTimeMarshaller;
 import org.dataone.service.util.TypeMarshaller;
 import org.jibx.runtime.JiBXException;
 
@@ -600,7 +601,7 @@
         try {
         	String fromDateS = params.get("fromDate")[0];
             logMetacat.debug("param fromDateS: " + fromDateS);
-            fromDate = parseDateAndConvertToGMT(fromDateS);
+            fromDate = DateTimeMarshaller.deserializeDateToUTC(fromDateS);
         } catch (Exception e) {
         	logMetacat.warn("Could not parse fromDate: " + e.getMessage());
         }
@@ -607,7 +608,7 @@
         try {
         	String toDateS = params.get("toDate")[0];
             logMetacat.debug("param toDateS: " + toDateS);
-            toDate = parseDateAndConvertToGMT(toDateS);
+            toDate = DateTimeMarshaller.deserializeDateToUTC(toDateS);
         } catch (Exception e) {
         	logMetacat.warn("Could not parse toDate: " + e.getMessage());
 		}
@@ -712,7 +713,8 @@
                     try
                     {
                       //startTime = dateFormat.parse(value[0]);
-                        startTime = parseDateAndConvertToGMT(value[0]);
+                    	startTime = DateTimeMarshaller.deserializeDateToUTC(value[0]);
+                        //startTime = parseDateAndConvertToGMT(value[0]);
                     }
                     catch(Exception e)
                     {  //if we can't parse it, just don't use the startTime param
@@ -725,7 +727,8 @@
                     try
                     {
                       //endTime = dateFormat.parse(value[0]);
-                        endTime = parseDateAndConvertToGMT(value[0]);
+                    	endTime = DateTimeMarshaller.deserializeDateToUTC(value[0]);
+                        //endTime = parseDateAndConvertToGMT(value[0]);
                     }
                     catch(Exception e)
                     {  //if we can't parse it, just don't use the endTime param
Index: src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java	(revision 6468)
+++ src/edu/ucsb/nceas/metacat/restservice/CNResourceHandler.java	(revision 6469)
@@ -62,6 +62,7 @@
 import org.dataone.service.types.v1.Permission;
 import org.dataone.service.types.v1.Subject;
 import org.dataone.service.types.v1.SystemMetadata;
+import org.dataone.service.util.DateTimeMarshaller;
 import org.dataone.service.util.TypeMarshaller;
 import org.jibx.runtime.JiBXException;
 
@@ -376,7 +377,7 @@
         try {
         	String fromDateS = params.get("fromDate")[0];
             logMetacat.debug("param fromDateS: " + fromDateS);
-            fromDate = parseDateAndConvertToGMT(fromDateS);
+            fromDate = DateTimeMarshaller.deserializeDateToUTC(fromDateS);
         } catch (Exception e) {
         	logMetacat.warn("Could not parse fromDate: " + e.getMessage());
         }
@@ -383,7 +384,7 @@
         try {
         	String toDateS = params.get("toDate")[0];
             logMetacat.debug("param toDateS: " + toDateS);
-            toDate = parseDateAndConvertToGMT(toDateS);
+            toDate = DateTimeMarshaller.deserializeDateToUTC(toDateS);
         } catch (Exception e) {
         	logMetacat.warn("Could not parse toDate: " + e.getMessage());
 		}
Index: src/edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.java	(revision 6468)
+++ src/edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.java	(revision 6469)
@@ -99,8 +99,6 @@
      */
     protected static final String FUNCTION_NAME_INSERT = "insert";
     protected static final String FUNCTION_NAME_UPDATE = "update";
-
-    protected static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
     
     protected ServletContext servletContext;
     protected Logger logMetacat;
@@ -314,29 +312,8 @@
             params.put(name, value);
         }
     }
-
+   
     /**
-     * parse a date and return it in GMT if it ends with a 'Z'
-     * @param date
-     * @return
-     * @throws ParseException
-     */
-    protected Date parseDateAndConvertToGMT(String date) throws ParseException
-    {
-        try
-        {   //the format we want
-            return dateFormat.parse(date);
-        }
-        catch(java.text.ParseException pe)
-        {   //try another legacy format
-            DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
-            dateFormat2.setTimeZone(TimeZone.getTimeZone("GMT-0"));
-            return dateFormat2.parse(date);
-        }    
-    }
-
-        
-    /**
      * locate the boundary marker for an MMP
      * @param is
      * @return
