楼主确认下你的机器操作系统,如果是英文的操作系统,哪么系统时间默认是2/16/1992 12:15:12这样的。所以你使用DateTime.Parse方法来进行时间转换的时候会报错,此时的解决办法是,改变.NET中默认的CultureInfo,可以如下实现
System.Globalization.DateTimeFormatInfo format = new System.Globalization.CultureInfo("zh-cn", true).DateTimeFormat;
string d = DateTime.Now.ToString();
Response.Write(d);
Response.Write(DateTime.Parse(d, format));
设定为中文区域,然后进行转换应该就没问题了
当然上面的方法需要说明一点,如果是正版的操作系统一般这么做是没问题的,因为系统的默认时间都是yyyy-M-d类似这样来设定的,如果是盗版这个时间设定就不一定了。所以如果你上面的转换还不能成功的话,哪么你就需要做一件事情,就是从 控制面板--区域和语言选项-区域选项》自定义-日期 改日期分隔符 为- 即可
奇怪
我用你的代码试了一下
转换正常,难道是因为你的vs不是中文版
不支持2009-4-25 8:00:00的格式
不过你可以尝试
datestr="2009-4-25";
DateTime date=DateTime.Parse(datestr).AddHours(8);
看行不行