- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我当前的任务中,我面临着日期时间计算中的一些不匹配问题。这就像用户详细信息管理。用户将有激活日期(dd/mm/yyyy)和到期日期(dd/mm/yyyy)。从 UI 中,将收集日期详细信息并将其保存在 SQL DB 中。例如,如果今天(2016 年 5 月 19 日)创建了用户 XYZ,则用户 XYZ 的激活日期将为 2016 年 5 月 19 日,到期日期将设置为 2016 年 5 月 25 日(基于用户意愿)。
User Name: XYZ
Activation Date: 19-05-2016
Expiry Date: 25-05-2016
因此,当尝试在站点中显示详细信息时,将从 SQL DB 检索用户详细信息,并将日期时间转换为 UTC 时区,然后将详细信息传递到站点以供用户查看。在 DB 中,日期按原样,但在使用 TimeZoneInfo.ConvertTimeToUtc() 转换它时,日期值会减少 1(如果日期是 19-05-2016,则将其转换为 28-05-2016)
select username, activationdate, expirydate from UserDetails where username = 'XYZ'
查询结果为,
username | activationdate | expirydate
------------------------------------------------------------
XYZ | 2016-05-19 00:00:00.000 | 2016-05-25 00:00:00.000
转换为 UTC 后,
ExpiryDate = TimeZoneInfo.ConvertTimeToUtc((DateTime)user.expirydate);
ActivationDate = TimeZoneInfo.ConvertTimeToUtc((DateTime)user.activationdate);
// after execution of these statements
// ExpiryDate = 2016-05-18 00:00:00.000
// ActivationDate = 2016-05-24 00:00:00.000
因此,在 ConvertTimeToUtc() 之后,实际激活日期 2016-05-19 00:00:00.000 转换为 2016-05-18 00:00:00.000 ,到期日期 2016-05-25 00:00:00.000 转换为2016-05-24 00:00:00.000。我引用了一个链接,说 TimeZoneInfo.ConvertTimeToUtc() 将 Convert the specified date and time to Coordinated Universal Time (UTC) 。我还尝试过将当前日期和时间在线转换为 UTC google ,它将时间转换为 UTC,但我没有看到日期有这么大的差异。我的困惑是为什么这个 UTC 转换会将日期值减少一个完整的日期?或者哪里出了问题?
对此的任何建议都会有所帮助。
最佳答案
这里的问题是您将日期存储为 2016-05-19 00:00:00.000。尝试获取准确的时间,包括分钟秒,这是用户的时间戳。我相信您来自 IST,当时是晚上 12 点“0 点”表示他们在我们后面,这就是您看到之前日期的原因。如果您有任何疑问,请告诉我。
关于mysql - TimeZoneInfo.ConvertTimeToUtc() 的日期时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320602/
我们的服务器无法正确处理从 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
我是一名优秀的程序员,十分优秀!