Ответ 1
До даты DateTime:
To DateTime from long:
Я хочу хранить даты как числа в таблице. Я знаю, как это сделать, но я не знаю, как вернуться. Как я могу передать длинную переменную 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. Я не против, какой метод использовать. Я просто хочу, чтобы я мог конвертировать туда и обратно.
До даты DateTime:
To DateTime from long:
используйте пару long t = now.Ticks
и DateTime Today = new DateTime(t)
От long до DateTime: new DateTime(long ticks)
От DateTime до long: DateTime.Ticks
Поскольку вы используете 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).
Существует несколько возможностей (обратите внимание, что эти длинные значения не совпадают с эпохой Unix.
Для вашего примера (для обратного ToFileTime()
) просто используйте DateTime.FromFileTime(t)
.
Существует конструктор DateTime, который занимает много времени.
DateTime today = new DateTime(t); // where t represents long format of dateTime