Вы можете обработать это в коде, для Великобритании вы можете использовать следующее, которое должно автоматически настраиваться для перехода на летнее время.
TimeZoneInfo ukTimeZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTime utcDate = new DateTime(2019, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime ukTime = TimeZoneInfo.ConvertTimeFromUtc(utcDate, ukTimeZone);
Console.WriteLine(utcDate == ukTime);
1 января значение ukTime
должно бытьравен UTC
, поскольку часовой пояс, используемый в Великобритании в это время года, является GMT
часовым поясом, равным UTC
.
1 июня время в Великобритании должно быть на час впереди UTC
, так как Великобритания будет переключать часовой пояс BST
в это время года.
utcDate = new DateTime(2019, 6, 1, 0, 0, 0, DateTimeKind.Utc);
ukTime = TimeZoneInfo.ConvertTimeFromUtc(utcDate, ukTimeZone);
Console.WriteLine(utcDate == ukTime.AddHours(-1));