首页 > 解决方案 > 使用 xamarin 表单将时间选择器设置为当前时间

问题描述

目前我正在使用日期和时间选择器来捕获用户输入信息的日期和时间。日期选择器工作正常,并且设置在当前日期,但我似乎无法让时间选择器设置在当前时间,它一直在 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; }
}

标签: c#xamarinxamarin.forms

解决方案


解决方案:

在您的代码中,您应该删除此行

TimePicker TimePicker = new TimePicker(); 

因为你已经timePicker在 Xaml 中创建了。

在您后面的代码中,只需使用这一行来设置timeTimePicker

TimePicker.Time = DateTime.Now.TimeOfDay; 

TimePicker这是TimePicker您在 Xaml 中定义的名称;

<TimePicker x:Name="TimePicker"/>

您将名称设置为TimePicker与控件的名称相同TimePicker,不推荐且容易混淆。

设定时间的方法:

1.

timePicker.Time = DateTime.Now.TimeOfDay;

2.

如果要自定义时间:

在代码中,您可以将 Time 属性初始化为 TimeSpan 类型的值:

TimePicker timePicker = new TimePicker
{
  Time = new TimeSpan(4, 15, 26) // Time set to "04:15:26"
};

因此,您可以获取 current hour, minutesecond然后将它们设置为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));

在xml中:

<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)

参考:时间选择器

官方样品


推荐阅读