diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py
index 2655a5381a757dfcdb331e14e976e8180bfe87de..f3d0ba9ffceffb2678f0a5962a1ef8a5bc21d194 100644
--- a/addons/stock/models/stock_move.py
+++ b/addons/stock/models/stock_move.py
@@ -464,7 +464,7 @@ class StockMove(models.Model):
         elif vals.get('state', '') == 'done' and vals.get('date'):
             propagated_date_field = 'date'
         if propagated_date_field:
-            new_date = vals.get(propagated_date_field)
+            new_date = fields.Datetime.to_datetime(vals.get(propagated_date_field))
             for move in self:
                 move_dest_ids = move.move_dest_ids.filtered(lambda m: m.state not in ('done', 'cancel'))
                 if not move_dest_ids: