i think doing $property->getDate() should guarantee the value is of type \DateTime, so we could just do a sanity check and throw some exception if its not of that type. i would follow the same model as elsewhere here and box the single date into an array if the property isMultiple is false, then loop over the array to set the timezone. not sure if even the sanity check is needed, Property->getDate is part of jackalope and tested.