在ASP.NET中使用C#将字符串转换为日期让我得到一个小时的约会.为
我使用VS2010,C#,ASP.NET编写以下代码:
DateTime dt = DateTime.Parse("2012-03-11T02:53:58-08:00"); //Date is taken from SQL database string strDt = dt.ToString(); //Becomes: "3/11/2012 3:53:58 AM" 这个四月的傻瓜是从微软开玩笑的吗? 解决方法
“不正确”的结果(正如暗示的答案所解释的)是由于2012年3月11日上午2:38:58在美国和加拿大观察夏令时的地区不是有效的日期和时间.显然,您的代码在其中一个区域的计算机上运行.
要将字符串转换为DateTime,忽略任何时区偏移,可以调用DateTimeOffset.Parse,然后检索结果的DateTime组件: DateTime dt = DateTimeOffset.Parse("2012-03-11T02:53:58-08:00").DateTime; string strDt = dt.ToString(); // "3/11/2012 2:53:58 AM" 更新:那么当原始字符串包含时区偏移量时,DateTime.Parse和DateTimeOffset.Parse之间的区别是什么?考虑这两个例子,假设您当前的时区是太平洋时间: // Example 1: DateTime.Parse(String) DateTime dt = DateTime.Parse("2012-03-11T06:00:00-04:00"); Console.WriteLine(dt.ToString("o")); // 2012-03-11T03:00:00.0000000-07:00 DateTime.Parse使用偏移量将解析的日期和时间调整为当地时间.请注意,时间从早上6点变为凌晨3点,反映了从东部夏令时(UTC-04:00)到太平洋夏令时(UTC-07:00)的转换.在您的问题中,时间已更改,因为DateTime.Parse会自动将时间从太平洋标准时间(UTC-08:00)调整为太平洋夏令时(UTC-07:00). // Example 2: DateTimeOffset.Parse(String) DateTimeOffset dto = DateTimeOffset.Parse("2012-03-11T06:00:00-04:00"); Console.WriteLine(dto.DateTime.ToString("o")); // 2012-03-11T06:00:00.0000000 Console.WriteLine(dto.Offset); // -04:00:00 DateTimeOffset.Parse更简单.它只返回DateTimeOffset值,其DateTime和Offset属性设置为已解析的日期,时间和偏移量.但要注意:如果字符串中的时区偏移量与您要使用的时区不匹配,则需要自己调整生成的日期和时间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – LinkBut??ton不会在click()上调用
- 如何在asp.net上的ButtonClick上使用Javascript隐藏GridVie
- asp.net-mvc – 在Asp.Net MVC应用程序中使用Structuremap将
- Asp.net视图状态MAC的验证失败
- 如何从ASP.NET中的代码隐藏文件访问IFRAME?
- asp.net – 具有默认值的TextBox
- asp.net – Kestrel和Katana之间的区别
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Lin
- asp.net core 系列 9 三种运行环境和IIS发布
- asp.net-mvc – “添加ASP.Net文件夹”未启用
- ASP.NET MVC 富文本Ueditor编辑 后台传值前端乱码
- asp.net-core – 我需要在ASP.NET Core for Cach
- asp.net-mvc-3 – 在仅HTTPS站点上对HTTP HEAD请
- asp.net – Windows Azure我可以在同一个额外的小
- ASP.NET中的SMTP头注入?
- asp.net – 使用AD的MVC3授权
- 为什么IIS比ASP.NET Development Server慢?
- 显示Asp.net AJAX Calendar Extender的两种方式
- ASP.Net MVC 3 – 密码保护视图