Во-первых, убедитесь, что ваш DateTime имеет DateTimeKind.Local (или UTC уже имеет действительное время UTC).Если этого не произойдет, вы можете преобразовать это:
myDate.SpecifyDateTimeKind(DateTimeKind.Local)
(Сделайте это как можно ближе к месту, где дата была создана; это сберегает путаницу позже.)
Теперь найдите часовой пояс дляСтрана, в которой вы заинтересованы:
// In case you don't know what the key is:
var allTimeZones = TimeZone.GetSystemTimeZones();
// Then when you have the key:
var theirTimeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneKey);
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(myDateTime, theirTimeZone);
Надеюсь, это поможет.