У меня есть ListView с полем DateTime, которое отображает 00:00:00 на Label, это вообще не требуется.
public DateTime? StartDate
{
get { return _startDate; }
set
{
SetProperty(ref _startDate, value);
//StartDate = DateTime.ParseExact(StartDate.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture); NOT WORKING
}
}
Я пытался удалить его, используя строку ниже, но не работал
StartDate = DateTime.ParseExact(StartDate.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture); //NOT WORKING
Код, отображающий это
<StackLayout Orientation = "Horizontal">
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "{Binding StartDate}" />
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "To" />
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "{Binding EndDate}" />
</StackLayout>
СписокСелл:
Как я могу удалить 0 из даты:
@Rafalon - Пожалуйста, проверьте мой обновленный вопрос.
Спасибо, также проверьте мой обновленный комментарий ^^
Посмотрите на Форматирование строки для Xamarin.Forms
Дата.ToShortDateString(); или date.ToString("дд-мм-гггг"); любой из этих методов будет работать
связанные : stackoverflow.com/questions/32814176/…, stackoverflow.com/questions/685743/…, stackoverflow.com/questions/447035/…





Используйте StartDate.ToShortDateString() вместо StartDate.ToString(). ToShortDateString возвращает строку, содержащую краткое строковое представление даты текущего объекта DateTime.
StartDate по-прежнему будет DateTime и, следовательно, по-прежнему будет содержать информацию о времени.
date.ToString("d")
Существуют и другие форматы, но «d» — это короткая дата. Вам нужно изменить строку вывода, а не сам DateTime. Тип DateTime содержит дату и время, как следует из названия, и удаление времени невозможно, но вам не нужно использовать время.
Это не то, как DateTime работает в C#, позвольте мне привести пример:
// This will print '01.01.2000 00:00:00'
Console.WriteLine(DateTime.ParseExact("01/01/1970", "dd/MM/yyy", CultureInfor.InvariantCulture));
Это ожидаемо, потому что каждое свойство в структуре DateTime имеет значение после конструктора, а 00:00:00 — это просто значение по умолчанию. Что вам нужно сделать, так это отформатировать его там, где вы его отображаете (например, в своем ярлыке), используя StringFormat и спецификатор формата для DateTime, тот, который вам, вероятно, нужен, это d. Итак, ваш xaml должен выглядеть так:
<StackLayout Orientation = "Horizontal">
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "{Binding StartDate, StringFormat='{0:d}'}" />
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "To" />
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "{Binding EndDate, StringFormat='{0:d}'}" />
</StackLayout>
Вы должны отформатировать Binding на XAML
<Label HorizontalOptions = "Center" VerticalOptions = "Center" Text = "{Binding StartDate, StringFormat='{0:d}'}" />
Например.
Вы хотите отформатировать его в отображении, а не в значении. Вы можете использовать метаданные, такие как
[DataType(DataType.Date)]над объявлением свойства.