- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TimeZoneInfo.ConvertTimeFromUtc
方法从注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zone
读取夏令时设置来计算本地时间?
如果是这样,它是否只适用于当前时间而不适用于过去的任何年份或日期?我想知道我是否可以将“东部标准时间”(如“2-1-2010 3:00 PM”)中的过去日期时间转换为 GMT 或 UTC遵循 2010 年的 DLS(夏令时)?以另一年为例,例如“2-1-2006 3:00 PM”。当你阅读 here ,美国的 DST 在 2007 年发生了变化。
请问,如果我必须在过去 5 年中显示来自马来西亚和纽约(美国东部标准时间)等两个不同地方的 SQL 数据库的约会时间,最佳解决方案是什么?
最佳答案
Does the
TimeZoneInfo.ConvertTimeFromUtc
method read the daylight saving settings from the registryHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zone
to calculate the local time?
是的,除了最后一个键名是 Time Zones
(你删除了一个 s
)。您可以在 this MSDN blog article 中了解其工作原理。 .
If so, does it work for only the current time and not for any past years or dates?
它将适用于 Windows 注册表数据中存在的任何过去年份。您可以检查注册表中的每个子项,看看您可以为每个区域转换多远。但是,数据中存在各种错误和遗漏。一般来说,此数据的历史准确性不如其他来源(例如 IANA/Olson 时区数据库,您可以通过 Noda Time 使用)。 .在 the timezone tag wiki 中阅读更多内容.
I would like to know if I can convert a past date time in 'Eastern Standard Time' like '2-1-2010 3:00 PM' to GMT or UTC which follows the DLS (Day Light Saving) for the year 2010? Take another year like '2-1-2006 3:00 PM' as an example also. As you read here, the DST has changed in 2007 for the US.
术语是“夏令时”- 没有大写字母,一个单词表示夏令时,缩写为 DST
是的,Windows 时区数据和 TimeZoneInfo
将 DST 考虑在内。
要将 转换为 UTC,您可以使用 ConvertTimeToUtc
,而不是 ConvertTimeFromUtc
。
是的,Windows 知道美国 2007 年夏令时的变化。它确实不但是,了解earlier changes ,例如 Uniform Time Act 之前的值于 1987 年生效。为此,您需要 IANA/Olson 数据库。
May I ask, what is the best solution if I have to display an appointment time from a SQL database in two different locals like Malaysia and New York (USA Eastern Standard Time) for a visitor in the past 5 years?
使用 TimeZoneInfo
为纽约使用 ID “东部标准时间”
ID,为纽约使用 “新加坡标准时间”
ID马来西亚。
在 Noda Time 中使用 IANA/Olson 时区,使用 "America/New_York"
和 "Asia/Kuala_Lumpur"
。
对于您询问的过去 5 年,这两个选项都可以。 Malaysia's last time zone change was in 1982 .
对于过去的事件,将 UTC 时间存储在您的数据库中,或存储具有正确时间和事件时区偏移量的 DateTimeOffset
值(参见 DateTime
vs DateTimeOffset
)。根据显示需要从 UTC 转换为查看者的时区。
为了安排 future 的事件,将事件的本地时间存储在您的数据库中,并遵循 the guidance I've written here .
您还可以在我的 Pluralsight 类(class) Date and Time Fundamentals 中找到有关此主题的扩展指导。 .具体来说,您应该考虑观看标题为“时区”、“.NET Framework 中的日期和时间”和“Noda Time 简介”的部分。
关于c# - TimeZoneInfo 过去几年的时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979609/
我们的服务器无法正确处理从 UTC 转换为本地时间的 C# DateTime 实例的夏令时。我们在英国,因此我们的服务器设置为“(UTC+00:00) 都柏林、爱丁堡、里斯本、伦敦”区域。 症状: D
我一直在使用 DateTime 和 TimeZoneInfo 类,我使用以下代码遇到了一个有趣的结果: var dstStart = new DateTime(2013, 3, 10, 2, 0, 0
我有一个将本地时间转换为 UTC 并将其存储在数据库中的应用程序。我在特定日期测试转换时遇到了这个问题 - 2015 年 11 月 1 日(夏令时结束的日期(时钟在到达凌晨 2 点时回到凌晨 1 点)
我希望 TimeZoneInfo.GetSystemTimeZones().Single(x => x.Id == anId) 总是给出相同的结果 TimeZoneInfo.FindSystemTim
任何人都可以帮助理解这一点。 Microsoft 3.5 中的 TimeZoneInfo 类告诉我以下 GMT 日期不是东部时区的夏令时,但它是。 // Get Eastern Timezone Ti
信息:使用.NET 4.0和VS 2012 嗨, 我即将对我自己的类进行单元测试,该类具有 TimeZoneInfo 类型的成员。但是,当我尝试在测试中考虑该成员时,它总是失败。 以下是一个简化的示例
TimeZoneInfo.StandardName 仅返回英文值,有没有办法根据设定的文化获取翻译后的名称? 谢谢。 最佳答案 TimeZoneInfo 从注册表中提取... HKEY_LOCAL_M
TimeZoneInfo.ConvertTimeFromUtc方法从注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
我使用 TimeZoneInfo.ConvertTime 方法将源时区转换为目标时区。这对我来说很好。我想知道,如果 Destination TimeZone 的 Daylight Savings 已
我知道我们可以使用 id 查找时区信息 TimeZoneInfo timeZone2 = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard T
我在使用 TimeZoneInfo 时遇到了问题。这可能只是理解 Microsoft 对 TimeZoneInfo 的想法的问题。 问题是如果我运行这些代码行: var tzi = TimeZoneI
我想弄清楚 System.TimeZoneInfo 是本地用户还是系统范围的设置?我一直在修改我的本地时区作为我登录的用户,但是在后台运行的服务作为记录时区的系统似乎不断记录旧时区。如果 TimeZo
我正在尝试在 C# 应用程序中控制夏令时,而不是让 Windows 执行此操作。 (我不会在这里讨论原因)。 所以我在日期和时间设置(Windows7)中删除了复选标记“为夏令时自动调整时钟” 我写了
我的 UI 层中有一些代码,应该采用 UTC 格式的 DateTime,并将其转换为本地日期时间: 在我的数据层中,我只是这样做: private DateTime ConvertToLocal(Da
我正在尝试使用 EWS API 从我正在编写的控制台程序访问 Exchange 服务器。我已经指定了我要连接的交换服务器的类型,但是当我尝试执行我拥有的代码时,它给了我 Error 1 The typ
是否有针对中欧的通用 TimeZoneInfo 将 CET 和 CEST 合二为一? 我有一个正在执行以下操作的应用: TimeZoneInfo tzi = TimeZoneInfo.FindSyst
我希望实现一个带有如下签名的函数: bool IsTimeZoneValid(string countryCode, DateTime localTime); 目的是确定该国家/地区是否具有本地时间有
我在序列化 TimeZoneInfo 对象时遇到了一些问题。我试图在 WCF 服务的数据协定中使用 TimeZoneInfo 变量,但序列化失败。所以我写了这段代码来测试序列化。这是我所做的:
我从 JavaScript 向 Controller 传递了用户客户端日期时间与 UTC 之间的偏移分钟数,使用 Date 对象上的 getTimezoneOffset 方法。现在我在服务器端有了这些
使用 .net 4.0 在 win 7 上运行 asp.net mvc 2 我有一个从表单接收 2 个 DateTime 对象的 Controller 操作方法。表单上的 UI 使用 jQueryUi
我是一名优秀的程序员,十分优秀!