2015-06-15 3 views
-9

Я хочу назначать только Date to DateTime переменную и переменную DateTime sholud hold Только дата.Assgin Дата Дата Дата

var date = DateTime.Now.Date; 
DateTime dt= date; 

дт должна провести Дата только

, как я могу это сделать

+4

'DateTime' ** всегда ** содержит компонент времени, нет никакого способа, чтобы сохранить только дату там. Вы можете создать новый 'DateTime', используя конструктор' DateTime dt = new DateTime (год, месяц, день) ', но он будет содержать время в полночь. –

+0

это так плохо .... действительно мне это нужно –

+0

попробуйте посмотреть MSDN на DateTime для примеров того, какие другие свойства вы можете получить .. это довольно прямолинейно относительно документации – MethodMan

ответ

2

Возможно, вы удовлетворены DateTime.Today:

DateTime today = DateTime.Today; 

Объект, который устанавливается на текущую дату, с компонентом времени, установленным на 00:00:00.

Если вы хотите дату любого DateTime вы можете использовать его Date property:

DateTime dateOfDateTime = DateTime.Now.Date; 

Новый объект с той же датой, что и данный экземпляр, а значение времени набор до 12:00 : 00 полночь (00:00:00).

A Datetime всегда содержит временную часть. Вы можете использовать DateTime.ToShortDateString, чтобы отобразить его без времени:

string dateOnly = Date.Today.ToShortDateString(); 
+1

Мне не нужна Сегодня мне нужна переменная datetime –

+0

Что вы имеете в виду, вам нужна какая-либо переменная datetime .. Приведите пример @ peter_2011 – MethodMan

+0

@ peter_2011: вы можете использовать 'DateTime.Date', чтобы получить DateTime, где временная часть« усечена ». Я отредактировал свой ответ. –

1

Как уже упоминалось в других ответах уже DateTime всегда будет содержать дату и время часть (даже если время часть устанавливается в 00:00:00).

Если по каким-либо причинам, которые не подходят для вас, вы всегда можете посмотреть на сторонние API-интерфейсы даты и времени.

Noda Time может представлять для вас особый интерес и содержит структуру с только частью даты.

LocalDate - это неизменяемая структура, представляющая дату в календаре без ссылки на конкретный часовой пояс или время суток.

+0

Хорошая рекомендация. Также по этой линии мы работаем над [предложением добавить 'System.Date' как тип данных в .NET Framework] (https://github.com/mj1856/corefx-dateandtime). –

0

Если вы просто хотите DateTime только с датой части, вы можете просто позвонить someDateTimeVariable.Date. Время всегда будет установлено на что-то, но стандартно установить его до полуночи, если время не существенно.

В вашем примере, вы можете просто сделать

DateTime dt = date.Date; 
+0

и как это возвращает только дату ..? он все еще имеет часть времени в объекте dt. – MethodMan

+0

@MethodMan да, но время будет полночь. Документация [здесь] (https://msdn.microsoft.com/en-us/library/system.datetime.date (v = vs.110) .aspx? Cs-save-lang = 1 & cs-lang = csharp # code- фрагмент-1). –

Смежные вопросы