Подтвердить что ты не робот

Конвертировать DateTime в длинный, а также наоборот

Я хочу хранить даты как числа в таблице. Я знаю, как это сделать, но я не знаю, как вернуться. Как я могу передать длинную переменную ToDateTime.

DateTime now = DateTime.Now;
long t = now.ToFileTime();
DateTime today = t.ToDateTime;  // I am looking for something like this line. This Method does not exist

Я знаю, что существует много способов преобразования DateTime в long. Я не против, какой метод использовать. Я просто хочу, чтобы я мог конвертировать туда и обратно.

4b9b3361

Ответ 3

От long до DateTime: new DateTime(long ticks)

От DateTime до long: DateTime.Ticks

Ответ 4

Поскольку вы используете ToFileTime, вы хотите использовать FromFileTime, чтобы перейти в другую сторону. Но note:

Обычно метод FromFileTime восстанавливает значение DateTime, которое было сохраненный методом ToFileTime. Однако эти два значения могут отличаться при следующих условиях:

Если сериализация и десериализация значения DateTime происходят в разных часовых поясах. Для Например, если значение DateTime с время 12:30 P.M. в восточной части США Часовой пояс сериализуется, а затем десериализован в тихоокеанское время в США зона, исходное значение 12:30 P.M. доводится до 9:30 A.M. отражать разница между двумя зоны.

Если значение DateTime, которое сериализовано, представляет собой недопустимое время в локальном часовом поясе. В этом случае, метод ToFileTime настраивает восстановленное значение DateTime, чтобы оно представляет действительное время в местном часовой пояс.

Если вам не важно, какое long представление DateTime сохраняется, вы можете использовать Ticks, как предложили другие ( Ticks, вероятно, предпочтительнее, в зависимости от ваших требований, поскольку значение, возвращаемое ToFileTime, похоже, относится к API-интерфейсу файловой системы Windows).

Ответ 5

Существует несколько возможностей (обратите внимание, что эти длинные значения не совпадают с эпохой Unix.

Для вашего примера (для обратного ToFileTime()) просто используйте DateTime.FromFileTime(t).

Ответ 6

Существует конструктор DateTime, который занимает много времени.

DateTime today = new DateTime(t); // where t represents long format of dateTime