diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhUtilities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhUtilities.java
index 7615bcbdd700ccb3bda06b2e60915aa29d7d50df..65a3c1a6a8eb43dc410418b5ec612e98cec31a3e 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhUtilities.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhUtilities.java
@@ -132,12 +132,8 @@ public class OaipmhUtilities {
     GregorianCalendar greg = new GregorianCalendar();
     greg.setTimeInMillis(System.currentTimeMillis());
 
-    // Format UTC string.
-    OAIDC_UTC_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC"));
-    String utcString = OAIDC_UTC_TIME_FORMAT.format(greg.getTime());
-
     // Get result.
-    result = DatatypeFactory.newInstance().newXMLGregorianCalendar(utcString);
+    result = DatatypeFactory.newInstance().newXMLGregorianCalendar(greg).normalize();
 
     log.fine("outgoing utc date (now): " + result);
 
diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/test/TestOaipmhUtilities.java b/oaipmh-core/src/test/java/info/textgrid/middleware/test/TestOaipmhUtilities.java
index 79d9df5e13d2c9d42083d48624f484b7e1d797ba..0f2839a70ec8ba52a4a3c98d3ba9bfb2538b18cf 100644
--- a/oaipmh-core/src/test/java/info/textgrid/middleware/test/TestOaipmhUtilities.java
+++ b/oaipmh-core/src/test/java/info/textgrid/middleware/test/TestOaipmhUtilities.java
@@ -190,8 +190,8 @@ public class TestOaipmhUtilities {
   @Test
   public void testGetUTCDatestampAsString() throws ParseException {
 
-    String expectedUTCDate = "1970-12-10T17:30:00Z";
-    String tgDateStamp = "1970-12-10T18:30:00.000";
+    String tgDateStamp = "2012-02-10T23:45:00.507+01:00";
+    String expectedUTCDate = "2012-02-10T22:45:00Z";
 
     String utcDate = OaipmhUtilities.getUTCDatestampAsString(tgDateStamp);
 
@@ -276,7 +276,9 @@ public class TestOaipmhUtilities {
 
     XMLGregorianCalendar currentDate = OaipmhUtilities.getCurrentUTCDate();
 
-    System.out.println(currentDate);
+    if (!currentDate.isValid()) {
+      assertTrue(currentDate + " is not a valid date!", false);
+    }
   }
 
 }