If you are going to convert to UTC, you probably want to do so with both dates, for cases where the timezone difference crosses into another date. Maybe you don't for reasons that aren't clear, in which case remove the relevant conversion from below:
date1.ToUniversalTime().Date + date2.ToUniversalTime().TimeOfDay
This also assumes the dates are both known to be in local time. You may wish to add a check of the Kind
property:
(date1.Kind == DateTimeKind.Utc ? date1 : date1.ToUniversalTime()).Date + (date2.Kind == DateTimeKind.Utc ? date2 : date2.ToUniversalTime()).TimeOfDay