DateTime показывает дату как 01/01/0001

78
9

Извините, если это кажется глупым вопросом, но я не могу найти ответ нигде, и я немного новичок. DateTime показывает, что я предположил как Min Date. Например:


DateTime updatedDate = new DateTime();
outItem.AddDate = updatedDate.ToLongDateString();

Выход выходит до 01 января 0001 года. Я пробовал много вариантов этого с аналогичными результатами. Что я делаю не так?

спросил(а) 2011-11-19T02:45:00+04:00 8 лет, 7 месяцев назад
1
Решение
127

Это зависит от того, что вы подразумеваете под "неправильным". new DateTime() действительно имеет то же значение, что и DateTime.MinValue. Если вы хотите текущее время, вы должны использовать:


DateTime updatedDate = DateTime.Now;

или

DateTime updatedDate = DateTime.UtcNow;

(Первое дает вам местное время, второе дает вам универсальное время. DateTime несколько испортилось, когда дело доходит до локального/универсального разрыва.)

ответил(а) 2011-11-19T02:47:00+04:00 8 лет, 7 месяцев назад
86

Если вы хотите получить текущую дату, используйте DateTime.Now. Вы создаете новый экземпляр класса даты, а значение min является значением по умолчанию.


DateTime updatedDate = DateTime.Now;
outItem.AddDate = updatedDate.ToLongDateString();

EDIT: На самом деле вы можете сократить свой код, просто сделав это:


outItem.AddDate = DateTime.Now.ToLongDateString();

ответил(а) 2011-11-19T02:47:00+04:00 8 лет, 7 месяцев назад
67

Джон Скит говорит правильно, и у меня есть некоторые, чтобы добавить.


"Неверный" зависит от того, в какое время вы хотите получить.


DateTime - это struct, а конструктор по умолчанию struct


всегда инициализирует все поля их ноль для числового типа и null


для ссылочного типа.


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


   var curDateTime = DateTime.Now;

если вы хотите получить время UTC.


   var utcDateTime = DateTime.UtcNow;

Примечание. DateTime.UtcNow получает текущую дату и время, но вместо использования локального часового пояса вместо этого используется время UTC.


Вы можете ссылаться на ссылку, как показано ниже.


http://blackrabbitcoder.net/archive/2010/11/18/c.net-little-wonders-datetime-is-packed-with-goodies.aspx

ответил(а) 2011-11-19T07:20:00+04:00 8 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема