Как мне преобразовать время эпохи unix и учесть летнее время в C #?

У меня есть функция, которая преобразует время эпохи Unix в значение DateTime .NET:

public static DateTime FromUnixEpochTime(double unixTime )
{
  DateTime d = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
  return d.AddSeconds(unixTime);
}

Где я am (Великобритания) часы переводятся на один час вперед для летнего времени.

В Python я получаю местное время эпохи с помощью time.time () (и ради аргумента, прямо сейчас время 17:15:00), что дает мне значение 1286122500 .

Если я конвертирую это обратно в удобочитаемое время, используя time.localtime () , оно преобразуется обратно в 17 : 15. Как я и ожидал.

Как мне преобразовать время эпохи unix обратно в значение .NET DateTime И учесть местное летнее время. Моя функция выше преобразует 1286122500 обратно до 16:15, что неверно для r мое географическое положение.

11
задан Kev 3 October 2010 в 16:34
поделиться