Преобразование даты из значения в C # - PullRequest
1 голос
/ 17 мая 2011

Кто-нибудь может распознать следующее значение "40195.315752" как дату?Мне нужно преобразовать / отформатировать эту основанную на значении дату в объект System.DateTime, но я не понимаю ее формат.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 17 мая 2011

Это serial date-time, что означает количество дней с определенной даты. Обратите внимание, что вам нужно знать дату, до которой это смещение. В Excel это будет 1 января 1900 года, в котором ваша дата будет 17/01/2010 07:34:41, но другие программы будут отличаться.

Другая распространенная дата начала - 1 января 1970 года (эпоха Unix).

2 голосов
/ 17 мая 2011

наслаждайтесь:

DateTime.FromOADate(40195.315752).ToLongDateString()

и конвертируйте его в DateTime

DateTime MyDateTime = DateTime.FromOADate(40195.315752);

Это означает Sunday,January 17 2010

0 голосов
/ 17 мая 2011

отображаемое вами значение - двойное ...

var val = 40195.315752;
            var span = System.TimeSpan.FromMilliseconds(val);
            var time = new DateTime(span.Ticks);

выше преобразует его в Datetime, но не забывайте, что System.Timespan выдерживает несколько перегрузок в диапазоне нагрузки, вам нужно определить, какой из них вам нужен ...

0 голосов
/ 17 мая 2011

Это может быть количество дней с определенной даты (возможно, 1 января 1900 г.) до десятичной точки?

...