首页新闻找找看学习计划

Convert.ToDateTime 转型失败 该字符串未被识别为有效的 DateTime。

0
悬赏园豆:60 [已解决问题] 解决于 2013-08-31 17:40

字符串A:2013/8/18 10:42:11  ( 程序写入文件的时间  编码Unicode)

字符串B: 2013-08-18  (自定义)

Convert.ToDateTime(“字符串”)

结果:

A:转型失败 该字符串未被识别为有效的 DateTime。

原因: “?”

 

问题补充:
 1         public static void ImportLog()
 2         {
 3             FileStream fs = null;// new FileStream(HttpContext.Current.Server.MapPath("~/zerodm"), FileMode.OpenOrCreate);
 4             StreamReader sr = null;
 5             try
 6             {
 7                 fs = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + "zerodm", FileMode.OpenOrCreate);
 8                 sr = new StreamReader(fs);
 9                 string value = sr.ReadLine();
10                 value = value.Substring(0, value.IndexOf('[')).ToString();
11                 ResponseWriteLine(value);
12                 DateTime time = Convert.ToDateTime(value);
13                 ResponseWriteLine("转型后:" + time);
14                 while (true)
15                 {
16                     string line = sr.ReadLine();
17                     if (string.IsNullOrEmpty(line))
18                     {
19                         ResponseWriteLine("跳出了");
20                         break;
21                     }
22                     ResponseWriteLine(line);
23                 }
24             }
25             finally
26             {
27                 sr.Close();
28                 fs.Close();
29                 sr.Dispose();
30                 fs.Dispose();
31             }
32         }
View Code
1 2013/8/18 13:48:45[zerodm] Object: Name:现视研 二代目 |ThisSum:7|Type:4|UpdatTime:2013/8/18 9:30:11|Keyword:现视研|Voices:山本希望、上坂堇、内山夕实、加隈亚衣、山本和臣
2 2013/8/18 13:48:45[zerodm] Object: Name:物语系列 第二季 |ThisSum:7|Type:14|UpdatTime:2013/8/18 9:28:55|Keyword:物语|Voices:神谷浩史、斋藤千和、加藤英美里、泽城美雪
3 2013/8/18 13:48:45[zerodm] Object: Name:Fate/kaleid lin |ThisSum:7|Type:5|UpdatTime:2013/8/18 9:26:58|Keyword:Fate|Voices:门胁舞以、名冢佳织、植田佳奈、伊藤静
4 2013/8/18 13:48:45[zerodm] Object: Name:侦探歌剧:少女福尔摩斯 第三季 |ThisSum:6|Type:7|UpdatTime:2013/8/18 8:32:07|Keyword:侦探歌剧|Voices:三森铃子、橘田泉、佐佐木未来
5 2013/8/18 13:48:45[zerodm] Object: Name:黄金拼图 |ThisSum:7|Type:12|UpdatTime:2013/8/18 8:29:03|Keyword:黄金拼图|Voices:西明日香、田中真奈美、东山奈央
Mundo Novo的主页 Mundo Novo | 初学一级 | 园豆:82
提问于:2013-08-18 10:57
< >
分享
最佳答案
0

你要确定读进来的字符串是 "2013/8/18 10:42:11",从文件读取有可能会把换行符也读进来

收获园豆:60
Yu | 专家六级 |园豆:12944 | 2013-08-18 13:08

@Mundo Novo: 读文件 试试 用UTF8编码

还不行 那就不知道了

Yu | 园豆:12944 (专家六级) | 2013-08-18 13:20

在CMD 下看到 时间前面有特殊的"?"  

StreamWriter.WriteLine(“字符串”);

 

 

Mundo Novo | 园豆:82 (初学一级) | 2013-08-18 15:39

@Mundo Novo:

你实际用TXT打开这个LOG的时候,也是有?的吗,如果是,那问题就在输出LOG那了

你也可以通过正则获取这个日期信息,来进行转换

Yu | 园豆:12944 (专家六级) | 2013-08-18 21:46

@Yu: 打开文本的时候 是没有的。 只有在控制台下输出才能看到。

只能针对性处理了

Mundo Novo | 园豆:82 (初学一级) | 2013-08-19 18:54
其他回答(5)
0

贴个demo代码出来吧,这样发现不好发现问题~

幻天芒 | 园豆:36522 (高人七级) | 2013-08-18 13:38

在CMD 下看到 时间前面有特殊的"?"  

StreamWriter.WriteLine(“字符串”);

支持(0) 反对(0) Mundo Novo | 园豆:82 (初学一级) | 2013-08-18 16:10

@Mundo Novo: 最大的可能,应该是读取时,编码有问题。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-08-18 23:31
0

调试下看看读进来的时间格式是不是你上面给出的那样格式。

你上面给出的那二个时间没有问题

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-18 18:31
0

把字符串A改为2013.8.18 10:42:11 试试

指尖的乐律 | 园豆:237 (菜鸟二级) | 2013-08-19 17:21
0

和服务器的区域和语言设置有关!

小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2013-08-22 14:59
0

日期的前后有一些特殊的字符,转换成日期以前先去掉就好了。

暴Tyrant君 | 园豆:202 (菜鸟二级) | 2013-08-23 17:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册