问题:我们只需要从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>