Отображение времени из DateTime в Syncfusion с ограничением на минимальную дату 2001 года
Проблема: Нужно вывести только время из объекта DateTime
в компоненте Syncfusion
SfTimePicker
, избегая ошибки из-за минимальной даты (компонент поддерживает даты только начиная с 2001 года).
Детали:
- Использую
SfTimePicker
(Blazor) для отображения времени из объектаDateTime
. Важна только часть времени, а не дата. - Если дата объекта раньше 2001 года, компонент выделяется красным.
- Пробовала сдвигать дату с помощью
.AddYears(2000)
, что работает, но не уверена в корректности этого подхода
Вопрос:
Как мне отобразить дату, чтоб не было ошибок, и не добавлять код (.AddYears(2000)), который я могу забыть, а он может потом выдасть неожиданный результат(?)Или это практикуется так преобразовывать ?
@page "/timePicker"
@using Syncfusion.Blazor.Calendars
<SfTimePicker TValue="DateTime" @bind-Value="@TimeValue"></SfTimePicker>
<p>TimeValue ===> @TimeValue</p>
<SfTimePicker TValue="DateTime" @bind-Value="@TimeValue2"></SfTimePicker>
<p>TimeValue2 ===> @TimeValue2</p>
@code {
public DateTime TimeValue { get; set; } = DateTime.MinValue.AddYears(2000);
public DateTime TimeValue2 { get; set; } = DateTime.MinValue;
}
Пробовала также привести объект к минимальной дате C#
(то есть01/01/0001
), но результат - также выделяется красным
var hour = DateTime.Now;
@if (Data.MyProperty != null)
{
hour = new DateTime(1, 1, 1, Data.MyProperty.Hour, Data.MyProperty.Minute, 0);
}
также я попробовала использовать TimeSpan
, это убрало красное выделение, но компонент перестал работать...
TimeSpan planningTime = Data.MyProperty.TimeOfDay;
<Syncfusion.Blazor.Calendars.SfTimePicker TValue="TimeSpan"
@bind-Value="@planningTime">
</Syncfusion.Blazor.Calendars.SfTimePicker>
также я попробовала использовать TimeOnly
TimeOnly planningTime = TimeOnly.FromDateTime(Data.MyProperty);
<Syncfusion.Blazor.Calendars.SfTimePicker TValue="TimeOnly" @bind-Value="@planningTime">
</Syncfusion.Blazor.Calendars.SfTimePicker>