DateTime показывает дату как 01/01/0001 - PullRequest
3 голосов
/ 19 ноября 2011

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

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

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

Ответы [ 3 ]

10 голосов
/ 19 ноября 2011

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

DateTime updatedDate = DateTime.Now;

или

DateTime updatedDate = DateTime.UtcNow;

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

4 голосов
/ 19 ноября 2011

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

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

РЕДАКТИРОВАТЬ: На самом деле вы можете сократить код, просто выполнив следующее:

outItem.AddDate = DateTime.Now.ToLongDateString();
2 голосов
/ 19 ноября 2011

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

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

DateTime является struct и стандартным конструктором struct

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

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

поэтому, если вы хотите получить текущую локальную дату и время, вы можете вызвать статическое свойство 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...