【发布时间】:2023-03-07 12:15:02
【问题描述】:
【问题讨论】:
-
UWP 应用不允许更改用户设备上的时间。
标签: c# datepicker uwp timepicker windows-10-iot-core
【问题讨论】:
标签: c# datepicker uwp timepicker windows-10-iot-core
DateTimeSettings 包含在 Windows IoT Extension SDK 16299 中。SetSystemDateTime 方法用于设置系统日期和时间。请参考下面的代码。
//Change Date by DatePicker
private void DatePickerChangeSetting_DateChanged(object sender, DatePickerValueChangedEventArgs e)
{
DateTimeSettings.SetSystemDateTime(e.NewDate.UtcDateTime);
}
//Change Time by TimePicker
private void tpChangeSetting_TimeChanged(object sender, TimePickerValueChangedEventArgs e)
{
var currentDate = DateTime.Now.ToUniversalTime();
var newDateTime = new DateTime(currentDate.Year,
currentDate.Month,
currentDate.Day,
e.NewTime.Hours,
e.NewTime.Minutes,
e.NewTime.Seconds);
DateTimeSettings.SetSystemDateTime(newDateTime);
}
@Naikrovek,在链接的文档中,没有关于参数DateTime/DateTimeOffset的错误。本质上,两者可以相互转换。请参阅Converting between DateTime and DateTimeOffsetc。另外,您提到的关于在 16299 上显示更新时间的问题已经修复,IoTCoreDefaultApp 更改为调用 NativeTimeMethods.GetLocalTime 方法。
另外,我发布了我的参考设置和appxmanifest功能设置,您可以从here安装适用于UWP的Windows IoT Extension(下载windows 10 sdk然后安装)。
【讨论】:
如果您的项目引用了 IoT UWP 扩展,并且您已将系统管理功能添加到您的 appxmanifest,则可以设置日期和时间 via this method。
链接的文档对我来说似乎模棱两可;它混合了使用偏移量与实际日期和时间的提及。我怀疑复制粘贴错误,我不确定这种方法是否真的能满足你的需要。
请注意,IoT Core 16299 上的默认家庭应用程序存在一个错误,该错误不会始终显示更新的时间,因此在修复此错误之前不要依赖该屏幕来了解您的时钟是否正确。
【讨论】: