当前,我正在使用日期和时间选择器来捕获用户输入信息时的日期和时间。日期选择器工作正常,并设置在当前日期,但我似乎无法让时间选择器在当前时间设置,它始终在00:00。有没有一种方法可以将其显示到当前时间。
我已经尝试了以下方法,并且仍在执行相同操作:
TimePicker TimePicker = new TimePicker();
TimePicker.Time = DateTime.Now.TimeOfDay;
这是程序中当前代码的运行方式:
.cs文件
DateTime FeedbackdateTime = DatePicker.Date.Add(TimePicker.Time);
initialmedfeedback.Datetimetaken = FeedbackdateTime;
.xaml文件
<DatePicker x:Name="DatePicker" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="4" ></DatePicker>
<TimePicker x:Name="TimePicker" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="4" ></TimePicker>
模型.cs文件
/// DateTime description getter/setter
/// </summary>
[JsonProperty(PropertyName = "datetimetaken")]
public DateTime Datetimetaken
{
get { return datetimetaken; }
set { datetimetaken = value; }
}
答案 0 :(得分:1)
解决方案:
在您的代码中,您应该删除此行
TimePicker TimePicker = new TimePicker();
因为您已经在Xaml中创建了timePicker
。
在后面的代码中,只需使用此行将time
中的TimePicker
设置为:
TimePicker.Time = DateTime.Now.TimeOfDay;
TimePicker
是您在Xaml中定义的TimePicker
的名称;
<TimePicker x:Name="TimePicker"/>
您将名称TimePicker
设置为与控件名称TimePicker
相同,不建议这样做,并且会造成混淆。
设置时间的方式:
1。
timePicker.Time = DateTime.Now.TimeOfDay;
2。
如果要自定义时间:
在代码中,您可以将Time属性初始化为类型的值 时间跨度:
TimePicker timePicker = new TimePicker
{
Time = new TimeSpan(4, 15, 26) // Time set to "04:15:26"
};
因此,您可以获得当前的hour
,minute
,second
,然后将它们设置为TimePicker .time
:
string hour = DateTime.Now.ToString("HH");
string minute = DateTime.Now.ToString("mm");
string sencond = DateTime.Now.ToString("ss");
_timePicker.Time = new TimeSpan(Convert.ToInt32(hour), Convert.ToInt32(minute), Convert.ToInt32(sencond));
在xaml中:
<TimePicker x:Name="_timePicker" Format="T"/>
其他:
DateTime.Now.ToString("hh:mm") // for non military time
DateTime.Now.ToString("HH:mm") // for military time (24 hour clock)
引用:timepicker