- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 Windows 中,我可以通过调用 GetTimeZoneInformation
轻松地进行 UTC 转换。结果我返回的结构将有两个不同的偏置值,一个用于标准时间,一个用于 DST,还有一个 BiasCode
表示我们当前使用的是哪个。如果我们只关心当前时刻就好了。
但是我有一个 API,用户可以调用它来检索有关即将发生的事件的数据。数据以本地时间存储在数据库中,用户需要 UTC 时间,所以我运行转换,一切都很好......除了我们将在几周内更改时间。如果我用今天的偏差报告时间变化的另一边的事件,它们将偏离一个小时。
有什么我可以调用的,它像 GetTimeZoneInformation
一样工作,只是我给它传递了一个日期和时间,然后它给我的 BiasCode
是 < em>到时候会是正确的, 而不是现在的? (是的,我知道规则每年都在变化。我不是在寻找 future 几周之后的任何东西。)
最佳答案
SystemTimeToTzSpecificLocalTime
- 让我引用 MSDN -
Converts a time in Coordinated Universal Time (UTC) to a specified time zone's corresponding local time.
您可以提供过去和 future 的输入 UTC 时间,并在考虑特定时刻有关 DST 设置的所有详细信息的情况下进行本地时间转换。
TzSpecificLocalTimeToSystemTime
是进行反向转换的孪生函数。
对我来说更重要的问题是 DST 设置会不时更改,即使对于同一地区也是如此,并且转换可能每年都不同(当然,这主要影响过去的事件,而不是 future 的事件).我假设此 API 也会处理此问题,跟踪 DST 规则随时间变化的历史记录。
更新。这个假设是正确的,MSDN 提到:
- The time zone uses a different UTC offset for the old and new years.
- The UTC time to be converted and the calculated local time are in different years.
关于windows - 有什么办法可以得到 future 点的 UTC 时间转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323495/
我是一名优秀的程序员,十分优秀!