Чтобы преобразовать дату Excel в объект DateTimeв C#, вы можете использовать различные методы. Вот несколько подходов:
Метод 1: использование метода DateTime.FromOADate
double excelDate = 44197.5; // Example Excel date value
DateTime dateTime = DateTime.FromOADate(excelDate);
Метод 2: использование метода DateTime.FromOADateс приведением типов
double excelDate = 44197.5; // Example Excel date value
DateTime dateTime = (new DateTime(1899, 12, 30)).AddDays(excelDate);
Метод 3: использование метода DateTimeOffset.FromUnixTimeSeconds
double excelDate = 44197.5; // Example Excel date value
DateTimeOffset unixEpoch = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
DateTimeOffset dateTimeOffset = unixEpoch.AddSeconds((excelDate - 25569) * 86400);
DateTime dateTime = dateTimeOffset.DateTime;
Метод 4: использование метода DateTime.FromOADateс настраиваемой корректировкой эпохи
double excelDate = 44197.5; // Example Excel date value
DateTime epoch = new DateTime(1900, 1, 1);
DateTime dateTime = epoch.AddDays(excelDate - 2); // Subtract 2 to account for Excel's incorrect leap year handling
Метод 5. Использование метода DateTime.ParseExactс собственным форматом
string excelDateString = "2021-09-15"; // Example Excel date value as string
DateTime dateTime = DateTime.ParseExact(excelDateString, "yyyy-MM-dd", CultureInfo.InvariantCulture);
Метод 6: использование метода DateTimeOffset.FromFileTime
long excelDate = 132287040000000000; // Example Excel date value as a file time
DateTimeOffset dateTimeOffset = DateTimeOffset.FromFileTime(excelDate);
DateTime dateTime = dateTimeOffset.DateTime;