如何使用C#中的当前位置自动设置时区

How to set time zone automatically using current location in C#

我需要使用位置自动设置系统的时区。当我去其他地方旅行时,我的系统时区将保持 same.When 我打开我的 WPF 应用程序,如果已连接互联网,是否可以通过按位置获取当前时区来自动设置我的系统时区?

第一步:您需要获取我建议的用户位置 HostIP

第二步:获取该位置的时区Google maps time zone API

然后你必须把它们缝合在一起。

你需要

  1. 拥有可靠的位置信息来源。

  2. 将第一步确定的坐标传给one of these techniques得到IANA时区

  3. 使用 CLDR 映射将 IANA 时区转换为 Windows 时区,as described here

  4. 使用 this answer 中的一种方法设置 Windows 时区。

  5. 向您的用户解释为什么您的应用程序正在做一些真正是他们自己的责任(或操作系统的责任)的事情。换句话说,不要偷偷摸摸。如果你打算这样做,它应该是你的应用程序的一个显着特征,并且你应该在改变任何东西之前得到用户的确认。请记住,时区设置对机器是全局的,而不仅仅是对您的应用程序。

恕我直言,如果这不是您正在编写的系统实用程序,那么您应该 使用 确定的时区,而不是尝试将系统设置为它。