【问题标题】:UWP C# Windows 10 IoT datepicker & timepicker to update system date & timeUWP C# Windows 10 IoT 日期选择器和时间选择器来更新系统日期和时间
【发布时间】:2023-03-07 12:15:02
【问题描述】:

我想知道是否有任何方法可以使用 datepicker 和 timepicker 更新/更改系统日期和时间?我找不到任何示例代码供参考。请指教。 谢谢。

更新:

有什么我错过的吗?

【问题讨论】:

  • UWP 应用不允许更改用户设备上的时间。

标签: c# datepicker uwp timepicker windows-10-iot-core


【解决方案1】:

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然后安装)。

【讨论】:

  • 嗨 Micheal.. 我在设置日期和时间时似乎遇到了异常 (UnauthorizedAccessException)。我已经上传了它的截图。可以请教吗?
  • 您需要将“系统管理”功能添加到您的 Package.appxmanifest。它允许应用程序拥有基本的系统管理权限。
  • 嗨 Micheal,我之前已经添加了系统管理功能。我附上了一个打印屏幕。
  • 你的 Windows IoT Core 是什么版本?我在 16299.64 上测试过代码,它可以工作。
  • 我正在使用 windowsIoT,版本=10.0.16299.0 ..我没有看到任何可用的最新更新。
【解决方案2】:

如果您的项目引用了 IoT UWP 扩展,并且您已将系统管理功能添加到您的 appxmanifest,则可以设置日期和时间 via this method

链接的文档对我来说似乎模棱两可;它混合了使用偏移量与实际日期和时间的提及。我怀疑复制粘贴错误,我不确定这种方法是否真的能满足你的需要。

请注意,IoT Core 16299 上的默认家庭应用程序存在一个错误,该错误不会始终显示更新的时间,因此在修复此错误之前不要依赖该屏幕来了解您的时钟是否正确。

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多