Отображение времени из 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>

Ответы (0 шт):