Si vous allez convertir en UTC, vous voudrez probablement le faire avec les deux dates, pour les cas où la différence de fuseau horaire passe dans une autre date. Peut-être que vous n'avez pas pour des raisons qui ne sont pas claires, dans ce cas, supprimer la conversion pertinente ci-dessous:
date1.ToUniversalTime().Date + date2.ToUniversalTime().TimeOfDay
Cela suppose aussi les dates sont tous deux connus pour être à l'heure locale. Vous pouvez ajouter une vérification de la propriété Kind
:
(date1.Kind == DateTimeKind.Utc ? date1 : date1.ToUniversalTime()).Date + (date2.Kind == DateTimeKind.Utc ? date2 : date2.ToUniversalTime()).TimeOfDay