使用xamarin表单将时间选择器设置为当前时间

时间:2019-02-27 12:43:59

标签: c# xamarin xamarin.forms

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

1 个答案:

答案 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"
};

因此,您可以获得当前的hourminutesecond,然后将它们设置为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

Offical sample