diff --git a/src/components/date-picker/panel/time-range.vue b/src/components/date-picker/panel/time-range.vue
index 6fe4af9..09e5b8a 100644
--- a/src/components/date-picker/panel/time-range.vue
+++ b/src/components/date-picker/panel/time-range.vue
@@ -85,9 +85,8 @@
         },
         watch: {
             value (newVal) {
-                if (!newVal) {
-                    return;
-                } else if (Array.isArray(newVal)) {
+                if (!newVal) return;
+                if (Array.isArray(newVal)) {
                     const valStart = newVal[0] ? toDate(newVal[0]) : false;
                     const valEnd = newVal[1] ? toDate(newVal[1]) : false;
 
diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue
index 1082d9e..d4073a3 100644
--- a/src/components/date-picker/picker.vue
+++ b/src/components/date-picker/picker.vue
@@ -444,15 +444,18 @@
                 immediate: true,
                 handler (val) {
                     const type = this.type;
-                    if ((type === 'time' || type === 'timerange') && !(val instanceof Date)) {
-                        const parser = (
-                            TYPE_VALUE_RESOLVER_MAP[type] ||
-                            TYPE_VALUE_RESOLVER_MAP['default']
-                        ).parser;
-                        if (type === 'timerange') val = val.join(RANGE_SEPARATOR);
+                    const parser = (
+                        TYPE_VALUE_RESOLVER_MAP[type] ||
+                        TYPE_VALUE_RESOLVER_MAP['default']
+                    ).parser;
 
+                    if (type === 'time' && !(val instanceof Date)) {
+                        val = parser(val, this.format || DEFAULT_FORMATS[type]);
+                    } else if (type === 'timerange' && Array.isArray(val) && val.length === 2 && !(val[0] instanceof Date) && !(val[1] instanceof Date)) {
+                        val = val.join(RANGE_SEPARATOR);
                         val = parser(val, this.format || DEFAULT_FORMATS[type]);
                     }
+
                     this.internalValue = val;
                 }
             },
diff --git a/test/routers/date.vue b/test/routers/date.vue
index 3495e5b..4973cd7 100644
--- a/test/routers/date.vue
+++ b/test/routers/date.vue
@@ -5,29 +5,30 @@
 </style>
 <template>
     <row>
-        <i-col span="12">
-            <date-picker type="date" placeholder="选择日期" style="width: 200px" @on-ok="ok" confirm @on-clear="clear"></date-picker>
-        </i-col>
-        <i-col span="12">
-            <date-picker :value="value3" type="daterange" placement="bottom-start" placeholder="选择日期" style="width: 200px"></date-picker>
-        </i-col>
-        <i-col span="12">
-            <time-picker
-                :value="value"
-                placeholder="选择时间"
-                format="HH:mm:ss"
-                :hide-disabled-options="false"
-                :disabled-hours="[1,2,10,11]"
-                @on-change="c"
-                @on-ok="ok"
-                @on-clear="clear"
-                style="width: 168px"></time-picker>
-        </i-col>
+        <!--<i-col span="12">-->
+            <!--<date-picker type="date" placeholder="选择日期" style="width: 200px" @on-ok="ok" confirm @on-clear="clear"></date-picker>-->
+        <!--</i-col>-->
+        <!--<i-col span="12">-->
+            <!--<date-picker :value="value3" type="daterange" placement="bottom-start" placeholder="选择日期" style="width: 200px"></date-picker>-->
+        <!--</i-col>-->
+        <!--<i-col span="12">-->
+            <!--<time-picker-->
+                <!--:value="value"-->
+                <!--placeholder="选择时间"-->
+                <!--format="HH:mm:ss"-->
+                <!--:hide-disabled-options="false"-->
+                <!--:disabled-hours="[1,2,10,11]"-->
+                <!--@on-change="c"-->
+                <!--@on-ok="ok"-->
+                <!--@on-clear="clear"-->
+                <!--style="width: 168px"></time-picker>-->
+        <!--</i-col>-->
         <i-col span="12">
             <time-picker
                 :value="value2"
                 type="timerange"
                 placeholder="选择时间"
+                format="HH:mm:ss"
                 :hide-disabled-options="false"
                 @on-change="c"
                 @on-ok="ok"
@@ -49,8 +50,8 @@
         },
         methods: {
             c (s) {
-                console.log(1,s);
-                this.value2 = s;
+//                console.log(1,s);
+//                this.value2 = s;
             },
             ok () {
                 console.log('ok');
--
libgit2 0.21.4