I had a similar issue with using Workflows. When I saved an object into Opportunoties workflow was executed. Seems like workflow module is expecting date with DBFormat SQL Date. I fixed by adding one more attempt to convert date if it fails.
Modify file legacy/include/TimeDate.php
public function fromUser($date, User $user = null)
{
$res = null;
try {
$res = SugarDateTime::createFromFormat($this->get_date_time_format($user), $date, $this->_getUserTZ($user));
} catch (Exception $e) {
$GLOBALS['log']->error("fromUser: Conversion of $date exception: {$e->getMessage()}");
}
if (!($res instanceof DateTime)) {
// TODO Fix is here - try again with SQL Date Format
$res = SugarDateTime::createFromFormat(self::DB_DATETIME_FORMAT, $date, self::$gmtTimezone);
}
if (!($res instanceof DateTime)) {
$uf = $this->get_date_time_format($user);
$GLOBALS['log']->error("fromUser: Conversion of $date from user format $uf failed");
return null;
}
return $res;
}