diff --git a/extension/qfq/qfq/Constants.php b/extension/qfq/qfq/Constants.php
index 9db13459081ed33b55ba723fdd414836949c664b..72897ba0081dbe8f14a3055d2ed0fda0fa109fd9 100644
--- a/extension/qfq/qfq/Constants.php
+++ b/extension/qfq/qfq/Constants.php
@@ -128,6 +128,7 @@ const ERROR_INVALID_OR_MISSING_PARAMETER = 1050;
 const ERROR_UNKNOWN_SQL_LOG_MODE = 1051;
 const ERROR_FORM_NOT_FOUND = 1052;
 const ERROR_DATE_TIME_FORMAT_NOT_RECOGNISED = 1053;
+const ERROR_SANATIZE_INVALID_VALUE = 1054;
 
 // Store
 const ERROR_STORE_VALUE_ALREADY_CODPIED = 1100;
@@ -347,7 +348,11 @@ const PARAM_T3_NO_ID = "t3 no id";
 const FLAG_ALL = 'flagAll';
 const FLAG_DYNAMIC_UPDATE = 'flagDynamicUpdate';
 
-
 const QUERY_TYPE_SELECT = 'type: select,show,describe,explain';
 const QUERY_TYPE_INSERT = 'type: insert';
-const QUERY_TYPE_UPDATE = 'type: update,replace,delete';
\ No newline at end of file
+const QUERY_TYPE_UPDATE = 'type: update,replace,delete';
+
+//Regexp
+const REGEXP_DATE_INT = '^\d{4}-\d{2}-\d{2}$';
+const REGEXP_DATE_GER = '^\d{1,2}\.\d{1,2}\.\d{2}(\d{2})?$';
+const REGEXP_TIME = '^\d{1,2}:\d{1,2}(:\d{1,2})?$';
\ No newline at end of file
diff --git a/extension/qfq/qfq/helper/Sanitize.php b/extension/qfq/qfq/helper/Sanitize.php
index ed1349d2762bb3f605e26472575e36bccf46592e..b59a3107d95c924272689b98d4b3ac11122b5507 100644
--- a/extension/qfq/qfq/helper/Sanitize.php
+++ b/extension/qfq/qfq/helper/Sanitize.php
@@ -9,9 +9,12 @@
 namespace qfq;
 
 use qfq;
-use qfq\CodeException;
+
+//use qfq\CodeException;
+//use qfq\UserFormException;
 
 require_once(__DIR__ . '/../../qfq/Constants.php');
+//require_once(__DIR__ . '/../exceptions/UserFormException.php');
 
 /**
  * Class Sanitize
@@ -40,8 +43,8 @@ class Sanitize {
         $pattern = '';
         $minMax = array();
         $valueCompare = '';
-        $errorText = "Value $value violates checkrule " . $sanatizeClass . " with pattern '$pattern'.";
         $errorCode = 0;
+        $errorText = '';
 
         // Prepare MIN|MAX
         switch ($sanatizeClass) {
@@ -52,9 +55,23 @@ class Sanitize {
 
             case SANITIZE_ALLOW_MIN_MAX_DATE:
                 $minMax = explode('|', $patternOrRange);
+
+                //TODO: hier sollten die Exceptions abgefangen werden um zwei unterschiedliche Fehlermeldungen ausgeben zu koenenn:
+                // a) der Value verletzt die Datumsgrenzen
+                // b) die Definition der Grenzen ist buggy
+//                try {
                 $valueCompare = Support::dateTime2mysql($value);
+//                } catch (UserFormException $e) {
+//                    throw new UserFormException("Date or time not recognized '" . $value . "' - " . $e->formatMessage(), ERROR_SANATIZE_INVALID_VALUE);
+//                }
+
+//                try {
                 $minMax[0] = Support::dateTime2mysql($minMax[0]);
                 $minMax[1] = Support::dateTime2mysql($minMax[1]);
+//                } catch  (UserFormException $e) {
+//                    throw new UserFormException("Date or time of min|max definition not recognized '" . $patternOrRange . "' - " . $e->formatMessage(), ERROR_SANATIZE_INVALID_VALUE);
+//                }
+
                 break;
 
             default:
@@ -104,6 +121,8 @@ class Sanitize {
         }
 
         if ($mode === SANATIZE_EXCEPTION) {
+            if ($errorText === '')
+                $errorText = "Value '$value' violates checkrule " . $sanatizeClass . " with pattern '$pattern'.";
             throw new UserFormException($errorText, $errorCode);
         }
 
@@ -114,7 +133,8 @@ class Sanitize {
     /**
      * @return array
      */
-    public static function inputCheckPatternArray() {
+    public
+    static function inputCheckPatternArray() {
         //EMail Regex: http://www.regular-expressions.info/email.html
         return [
             SANITIZE_ALLOW_ALNUMX => '^[@\-_\.,;: \/\(\)[:alnum:]]*$',
diff --git a/extension/qfq/qfq/helper/Support.php b/extension/qfq/qfq/helper/Support.php
index d57833ef6be9540a9a0b2ff6db57066958c6f07d..ea8ec1d447d896b122d4aa6de454dae8668d5674 100644
--- a/extension/qfq/qfq/helper/Support.php
+++ b/extension/qfq/qfq/helper/Support.php
@@ -8,6 +8,7 @@
 
 namespace qfq;
 
+require_once(__DIR__ . '/../Constants.php');
 require_once(__DIR__ . '/Sanitize.php');
 
 class Support {
@@ -142,16 +143,21 @@ class Support {
         $dateRaw = '';
         $timeRaw = '';
 
+
+//        const REGEXP_DATE_INT_ = '^\d{2,4}-\d{2}-\d{2}$';
+//        const REGEXP_DATE_GER = '^\d{1,2}\.\d{1,2}\.\d{2}(\d{2})?$';
+//        const REGEXP_TIME = '^\d{1,2}:\d{1,2}(:\d{1,2})?$';
+
         $tmpArr = explode(' ', $dateTimeString);
         switch (count($tmpArr)) {
             case 0:
                 return '';
 
             case 1:
-                if (strpos($tmpArr[0], '.') === false) {
-                    $timeRaw = $tmpArr[0];
-                } else {
+                if (strpos($tmpArr[0], ':') === false) {
                     $dateRaw = $tmpArr[0];
+                } else {
+                    $timeRaw = $tmpArr[0];
                 }
                 break;
 
@@ -168,18 +174,33 @@ class Support {
         if ($dateRaw === '') {
             $date = '0000-00-00';
         } else {
-            $tmpArr = explode('.', $dateRaw);
-            if ($tmpArr[2] < 70) {
-                $tmpArr[2] = 2000 + $tmpArr[2];
-            } elseif ($tmpArr[2] < 100) {
-                $tmpArr[2] = 1900 + $tmpArr[2];
+            // International format: YYYY-MM-DD
+            if (preg_match("/" . REGEXP_DATE_INT . "/", $dateRaw) === 1) {
+                $date = $dateRaw;
+
+                // German format: 1.1.01 - 11.12.1234
+            } elseif (preg_match("/" . REGEXP_DATE_GER . "/", $dateRaw) === 1) {
+                $tmpArr = explode('.', $dateRaw);
+
+                if ($tmpArr[2] < 70) {
+                    $tmpArr[2] = 2000 + $tmpArr[2];
+                } elseif ($tmpArr[2] < 100) {
+                    $tmpArr[2] = 1900 + $tmpArr[2];
+                }
+                $date = sprintf("%04d-%02d-%02d", $tmpArr[2], $tmpArr[1], $tmpArr[0]);
+
+            } else {
+                throw new UserFormException('Date/time format not recognised.', ERROR_DATE_TIME_FORMAT_NOT_RECOGNISED);
             }
-            $date = sprintf("%04d-%02d-%02d", $tmpArr[2], $tmpArr[1], $tmpArr[0]);
         }
 
         if ($timeRaw === '') {
             $time = '00:00:00';
         } else {
+            if (preg_match("/" . REGEXP_TIME . "/", $timeRaw) !== 1) {
+                throw new UserFormException('Date/time format not recognised.', ERROR_DATE_TIME_FORMAT_NOT_RECOGNISED);
+            }
+
             $tmpArr = explode(':', $timeRaw);
             switch (count($tmpArr)) {
                 case 2:
diff --git a/extension/qfq/qfq/store/FillStoreForm.php b/extension/qfq/qfq/store/FillStoreForm.php
index 8d9d995725fa89f6d2bc0f4891132b4a7980d3fe..50d0e3c0df00a763740b414f6b4e4d684317a2d3 100644
--- a/extension/qfq/qfq/store/FillStoreForm.php
+++ b/extension/qfq/qfq/store/FillStoreForm.php
@@ -115,11 +115,18 @@ class FillStoreForm {
                             $clientValues[$clientFieldName] = implode(',', $clientValues[$clientFieldName]);
                         }
 
+                        try {
 //                $newValues[$formElement['name']] = $this->validateValue($formElement, $clientValues[$clientFieldName]);
-                        $newValues[$formElement['name']] = Sanitize::sanitize($clientValues[$clientFieldName], $formElement['checkType'], $formElement['checkPattern'], SANATIZE_EXCEPTION);
+                            $newValues[$formElement['name']] = Sanitize::sanitize($clientValues[$clientFieldName],
+                                $formElement['checkType'], $formElement['checkPattern'], SANATIZE_EXCEPTION);
+                        } catch (UserFormException $e) {
+                            throw new UserFormException("Form element '" . $formElement['name'] . ' / ' .
+                                $formElement['label'] . "': " . $e->formatMessage(), SANATIZE_EXCEPTION);
+                        }
                     } else {
                         if ($formElement['mode'] === FE_MODE_REQUIRED) {
-                            throw new UserFormException("Missing required value for '" . $formElement['name'] . ' / ' . $formElement['label'] . "'", ERROR_UNKNOWN_MODE);
+                            throw new UserFormException("Missing required value for '" . $formElement['name'] . ' / ' .
+                                $formElement['label'] . "'", ERROR_UNKNOWN_MODE);
                         }
                     }
                     break;
diff --git a/extension/qfq/tests/phpunit/SupportTest.php b/extension/qfq/tests/phpunit/SupportTest.php
index 91ba7777b5e312771c461c4e8169ca4224c6afd4..82a80bd9b3f54df12a01871619cb598d97333cc0 100644
--- a/extension/qfq/tests/phpunit/SupportTest.php
+++ b/extension/qfq/tests/phpunit/SupportTest.php
@@ -104,12 +104,16 @@ class SupportTest extends \PHPUnit_Framework_TestCase {
     public function testDateTime2mysql() {
 
         // date
+        $this->assertEquals('0000-00-00 00:00:00', Support::dateTime2mysql(''));
+
         $this->assertEquals('2069-12-31 00:00:00', Support::dateTime2mysql('31.12.69'));
         $this->assertEquals('1970-01-01 00:00:00', Support::dateTime2mysql('1.1.70'));
         $this->assertEquals('1999-02-01 00:00:00', Support::dateTime2mysql('01.02.99'));
         $this->assertEquals('2079-02-01 00:00:00', Support::dateTime2mysql('1.2.2079'));
         $this->assertEquals('2079-02-01 00:00:00', Support::dateTime2mysql('01.02.2079'));
 
+        $this->assertEquals('1234-01-02 00:00:00', Support::dateTime2mysql('1234-01-02'));
+
         // time
         $this->assertEquals('0000-00-00 03:04:00', Support::dateTime2mysql('3:4'));
         $this->assertEquals('0000-00-00 03:04:00', Support::dateTime2mysql('03:04'));
@@ -121,6 +125,169 @@ class SupportTest extends \PHPUnit_Framework_TestCase {
         // date time
         $this->assertEquals('2069-02-01 01:02:00', Support::dateTime2mysql('1.2.69 1:2'));
         $this->assertEquals('2016-12-31 23:48:59', Support::dateTime2mysql('31.12.2016 23:48:59'));
+        $this->assertEquals('2016-12-31 23:48:59', Support::dateTime2mysql('2016-12-31 23:48:59'));
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException01() {
+        Support::dateTime2mysql('1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException02() {
+        Support::dateTime2mysql('1.');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException03() {
+        Support::dateTime2mysql('1.1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException04() {
+        Support::dateTime2mysql('1.1.');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException05() {
+        Support::dateTime2mysql('1.1.1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException06() {
+        Support::dateTime2mysql('1.1.1.');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException07() {
+        Support::dateTime2mysql('1.1.1.1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException08() {
+        Support::dateTime2mysql('123.1.11');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException09() {
+        Support::dateTime2mysql('1.123.11');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException10() {
+        Support::dateTime2mysql('1.1.123');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException11() {
+        Support::dateTime2mysql('1.1.12345');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException12() {
+        Support::dateTime2mysql('1-01-01');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException13() {
+        Support::dateTime2mysql('12-01-01');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException14() {
+        Support::dateTime2mysql('123-01-01');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException15() {
+        Support::dateTime2mysql('12345-01-01');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException16() {
+        Support::dateTime2mysql('1234-1-01');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException17() {
+        Support::dateTime2mysql('1234-01-1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException18() {
+        Support::dateTime2mysql('1:');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException19() {
+        Support::dateTime2mysql('1:1:');
+    }
+
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException20() {
+        Support::dateTime2mysql('1:1:1:1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException21() {
+        Support::dateTime2mysql('123:1:1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException22() {
+        Support::dateTime2mysql('1:123:1');
+    }
+
+    /**
+     * @expectedException \qfq\UserFormException
+     */
+    public function testDateTime2mysqlException23() {
+        Support::dateTime2mysql('1:1:123');
     }
 
     public function testEncryptDoubleCurlyBraces() {