字符串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 }
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:西明日香、田中真奈美、东山奈央
你要确定读进来的字符串是 "2013/8/18 10:42:11",从文件读取有可能会把换行符也读进来
@Mundo Novo: 读文件 试试 用UTF8编码
还不行 那就不知道了
在CMD 下看到 时间前面有特殊的"?"
StreamWriter.WriteLine(“字符串”);
@Mundo Novo:
你实际用TXT打开这个LOG的时候,也是有?的吗,如果是,那问题就在输出LOG那了
你也可以通过正则获取这个日期信息,来进行转换
@Yu: 打开文本的时候 是没有的。 只有在控制台下输出才能看到。
只能针对性处理了
贴个demo代码出来吧,这样发现不好发现问题~
在CMD 下看到 时间前面有特殊的"?"
StreamWriter.WriteLine(“字符串”);
@Mundo Novo: 最大的可能,应该是读取时,编码有问题。
调试下看看读进来的时间格式是不是你上面给出的那样格式。
你上面给出的那二个时间没有问题
把字符串A改为2013.8.18 10:42:11 试试
和服务器的区域和语言设置有关!
日期的前后有一些特殊的字符,转换成日期以前先去掉就好了。