Мне нужно работать со временем эпохи в c#, и я создал для этого два следующих метода расширения:
public static DateTime ToDateTime(this double epochTime)
{
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(epochTime);
}
public static double ToEpochTime(this DateTime dt)
{
var t = dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return t.TotalSeconds;
}
Я получаю ошибку, когда запускаю следующий тест:
[Fact]
public void Test_EpochTime()
{
var dateToTest = DateTime.Now;
var epoch = dateToTest.ToEpochTime();
var result = epoch.ToDateTime();
Assert.Equal(result, dateToTest);
}
Результат:
Xunit.Sdk.EqualException: 'Ошибка Assert.Equal ()
Ожидается: 2020-03-02T17: 43: 19.1830000Z
Факт: 2020-03-02T17: 43: 19.1831870 + 00: 00 '
Кто-нибудь сталкивался с этим раньше, где существует проблема с преобразованием между double / DateTime?
Спасибо за любые указатели заранее!