2016-08-08 2 views
-3

У меня есть значение даты, с которого я хочу удалить время. Я хочу, чтобы тип возвращаемого типа был типом даты, так как я хочу заказать список дат, который у меня есть. наличие списка в строке, представляющей Date, не возвращает правильный порядок. Я знаю, что DateTime всегда возвращает дату со временем. Какие у меня варианты? Как я могу улучшить свой код и иметь список элементов типа Date без времени?дата возвращения без времени, но не типа string, но дата

Редактировать: Я хотел бы иметь только дату. ничего после этого. Что-то вроде 8/7/2016 не 8/7/2016 00:00:00 или что-нибудь после даты. и в объекте даты.

Вот мой код:

+0

Дубликат, уже ответил на http://stackoverflow.com/questions/6121271/how-to-remove-time-portion-of-date-in-c-sharp-in-datetime-object-only – user319785

ответ

2

Для любого данного DateTime объекта, вы можете ссылаться на its Date property раздеть значение времени:

var withTime = DateTime.Now; // 8/7/2016 22:11:43 
var withoutTime = withTime.Date; // 8/7/2016 00:00:00 
+0

Но это все еще показывает время как 00:00:00. Я бы хотел что-то строка 8/7/2016, и после этого ничего не получилось. – Francky

+3

@Francky: Объект 'DateTime' сам по себе не показывает * ничего. Как вы * отображаете * значение в пользовательском интерфейсе является отдельной проблемой полностью. Если вы хотите отображать его без какого-либо времени, то отобразите его без какого-либо времени. Но тип DateTime имеет эти свойства. Если вам нужен тип без этих свойств, я думаю, вам нужно будет определить свое. – David

+0

все это - возможность отображать его без времени. Я могу удалить временную часть, но мне придется преобразовать ее в строку, поэтому мы возвращаемся к той же проблеме с датой, а не с строкой. Основная проблема здесь - уметь сортировать список. преобразование его в строку возвращает неверный отсортированный список. – Francky

0

Рамка .NET не имеет дату- только объект.

Возможно, стоит понять, как работает конструкция DateTime. Внутри он хранит смещение в тиках (1 галлон = 100 наносекунд) с 01.01.10001 12:00 в одном 64-битном беззнаковом целом. (1 тик = 100 наносекунд)

Структура DateTime затем предоставляет множество полезных методов и свойств для обработки дат и времени, таких как добавление нескольких дней к существующей дате или вычисление разницы в два раза. Одно полезное свойство - Date, которое округляет объект DateTime до ближайшего дня (12:00).

Даты, времена и даты со временем очень похожи, основное различие заключается в том, как вы их отформатируете, дату со временем, когда вы опускаете время, это просто дата.

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

Только преобразовать их в string, когда они должны быть отображены, и в этот момент вы можете использовать такие методы, как ToShortDateString() или ToString(string format), чтобы отобразить только дату.

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