setTimezone(self::getUtc()); } return parent::convertToDatabaseValue($value, $platform); } public static function getUtc(): \DateTimeZone { if (self::$utc === null) { self::$utc = new \DateTimeZone('UTC'); } return self::$utc; } /** * @param mixed $value * @throws ConversionException */ public function convertToPHPValue($value, AbstractPlatform $platform): ?\DateTimeImmutable { if (null === $value || $value instanceof \DateTimeImmutable) { return $value; } if (\is_string($value)) { $converted = \DateTimeImmutable::createFromFormat( $platform->getDateTimeFormatString(), $value, self::getUtc() ); if ($converted !== false) { return $converted; } } throw ConversionException::conversionFailedFormat( $value, Types::DATETIME_IMMUTABLE, $platform->getDateTimeFormatString() ); } }