diff --git a/src/core/utils.js b/src/core/utils.js
index e140112f071e14040bb817189d43b90903be4fa8..d6d56043a795ff695edde4df01090af1c7df6bbb 100644
--- a/src/core/utils.js
+++ b/src/core/utils.js
@@ -139,6 +139,24 @@ function typecast(type, schema, callback) {
       if (value.length > max) {
         value = value.substr(0, max);
       }
+
+      switch (schema.format) {
+        case 'date-time':
+        case 'datetime':
+          value = new Date(value).toISOString();
+          break;
+
+        case 'date':
+          value = new Date(value).toISOString().substr(0, 10);
+          break;
+
+        case 'time':
+          value = new Date(value).toISOString().substr(11);
+          break;
+
+        default:
+          break;
+      }
       break;
     }