Преобразование даты из значения в C#

#c# #datetime #date #date-format

#c# #datetime #Дата #формат даты

Вопрос:

Может ли кто-нибудь распознать следующее значение «40195.315752» в качестве даты? Мне нужно преобразовать / отформатировать эту дату на основе значений в систему.Объект DateTime, но не понимаю его формат.

Спасибо.

Комментарии:

1. Знаете ли вы, что должно представлять это конкретное значение? Возможно, это «дни с полуночи 19.00 1 января по UTC»?

2. Привет. Можете ли вы поделиться источником этого значения? Возможно, это могло бы нам немного помочь.

3. Где вы находите этот формат времени?

4. Спасибо вам за всю вашу помощь. Длинное значение представляет дату добавления альбома в приложение jukebox и берется из базы данных альбомов, используемых музыкальным автоматом.

Ответ №1:

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

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

Ответ №2:

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

 DateTime.FromOADate(40195.315752).ToLongDateString()
  

и преобразовать его в DateTime

 DateTime MyDateTime = DateTime.FromOADate(40195.315752);
  

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

Ответ №3:

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

Ответ №4:

отображаемое вами значение равно двойному…

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

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