首页 新闻 搜索 专区 学院

C#字符串转日期格式的问题!急

0
悬赏园豆:30 [已解决问题] 解决于 2009-04-26 11:52

代码:

datestr="2009-4-25";

datestr+=" "+"8:00:00";

DateTime date=DateTime.Parse(datestr);

出现问题:System.FormatException: 该字符串未被识别为有效的 DateTime。

我在调试的时候查看datestr的值为"2009-4-25 8:00:00",而我执行DateTime.Parse("2009-4-25 8:00:00")的时候,转换成功,很郁闷,哪为高手帮看看吧

morsh的主页 morsh | 初学一级 | 园豆:80
提问于:2009-04-26 00:52
< >
分享
最佳答案
0

楼主确认下你的机器操作系统,如果是英文的操作系统,哪么系统时间默认是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类似这样来设定的,如果是盗版这个时间设定就不一定了。所以如果你上面的转换还不能成功的话,哪么你就需要做一件事情,就是从 控制面板--区域和语言选项-区域选项》自定义-日期   改日期分隔符 为-  即可

西越泽 | 专家六级 |园豆:10713 | 2009-04-26 11:39
其他回答(1)
0

奇怪

我用你的代码试了一下

转换正常,难道是因为你的vs不是中文版

不支持2009-4-25 8:00:00的格式

不过你可以尝试

datestr="2009-4-25";

DateTime date=DateTime.Parse(datestr).AddHours(8);

看行不行

花生1 | 园豆:872 (小虾三级) | 2009-04-26 01:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册