Bonjour,
cela fait quelques heures.. que je ne comprends pas pourquoi je n'arrive pas à parser une string en datetime.
J'écris un fichier csv puis je le lis.
Le premier string est bien parsé, tous les suivants me retournent une exception du type "'String '11/09/2020 16:14:09' was not recognized as a valid DateTime"
Voila mon code simplifié et le fichier de log en pj.
Si vous avez une idée je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 [TestMethod] public void TestParseCsv() { //var csvLines = new string[] //{ // "Date;Level;Message;Stack", // "\"14/09/2020 10:23:06\"; \"Information\"; \"message1\"; \"\"", // "\"14/09/2020 10:23:06\"; \"Information\"; \"message2\"; \"\"", // "\"14/09/2020 10:23:08\"; \"Information\"; \"message3\"; \"\"", // "\"14/09/2020 10:23:09\"; \"Information\"; \"message4\"; \"\"", //}; //avec ce qui est au dessus le DateTime.Parse fonctionne.. var csvLines = File.ReadAllLines("Log.csv"); foreach (var line in csvLines.Skip(1))//skip header; { var cols = line.Split(";").Select(v => v.Replace("\"", string.Empty)); var datetime = DateTime.Parse(cols.ElementAt(0)); var information = cols.ElementAt(1); var msg = cols.ElementAt(2); var stack = cols.ElementAt(2); Debug.WriteLine(string.Join('\t', datetime, information, msg, stack)); } }
Je me permets d'ajouter que j'ai le même comportement avec ce fichier :
et le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Date;Level;Message;Stack "44088,45741023148";"Information";"1";"" "44088,457579155096";"Information";"2";""
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var oaStr = double.Parse(cols.ElementAt(0)); var date = DateTime.FromOADate(oaStr);
Partager