Je dirais que vous devriez utiliser UTC pour les calculs de périodes de temps, afin d'éviter les problèmes liés au passage à l'heure d'été, puis utiliser LocalTime uniquement pour l'affichage.
DateTime.ToLocalTime pour convertir de l'UTC à l'heure locale, puis DateTime.ToUniversalTime pour convertir de l'heure locale à l'UTC.
Édition après le commentaire 1
Est-ce que je comprends donc que vous voulez afficher un fuseau horaire différent de celui du serveur ?
Si vous utilisez des pages web pour accéder à votre serveur, utilisez HttpRequest.UserLanguages pour créer un objet CultureInfo et l'utiliser pour analyser votre objet DateTime. Consultez ici pour une explication détaillée : Lien de Microsoft sur l'affichage de l'heure locale de l'utilisateur pour les pages web.
Si vous utilisez une architecture client-serveur, alors si l'appel LocalTime est du côté du client, il affichera l'heure locale pour le client. Ensuite, vous la convertissez en UTC pour renvoyer à votre serveur.
De toute façon, votre serveur n'a pas besoin de savoir où se trouve le client. Ainsi, si vous avez plusieurs clients dans plusieurs fuseaux horaires, toutes les calculs correspondront. Cela vous permettra également d'afficher les heures dans n'importe quel fuseau horaire que vous souhaitez en utilisant différents objets Culture.
Édition 2 copiée de mon deuxième commentaire
Vous pouvez obtenir des données horaires au format UTC depuis le serveur. Ensuite, vous pouvez les convertir en utilisant DateTime.ToLocalTime ou DateTime.ToUniversalTime comme requis. Si vous incluez également des dates et devez gérer par exemple les formats US MM/jj/aaaa et européen jj/MM/aaaa, alors vous pouvez utiliser la classe CultureInfo pour analyser la valeur DateTime en conséquence. Cela semble être plus de travail que ce que vous avez actuellement, mais cela signifierait que si vous déplacez à nouveau votre serveur, vous n'aurez pas besoin de recoder la manipulation des DateTime.
Un nouveau point
Un autre point à considérer est la synchronisation des horloges entre le serveur et les clients en utilisant NTP (Network Time Protocol) ou SNTP (Simple Network Time Protocol) si c'est suffisamment précis. Je ne sais pas quel système d'exploitation vous utilisez, mais cela est utilisé par les services temporels de Windows Server pour synchroniser les réseaux.