If tasks have time values for start/end date, the task editor removes time values when updating tasks regardless of modification of the dates.
And even worse, tasks have mismatching of dates and duration when it happens.
I think the task editor should keep time if dates are not changed.
The above code sets a time including format for start, end and constraint date fields and tells them to preserve the provided time portion of the dates.