Search code examples
c#datedatetimetype-conversiondatetime-conversion

String to DateTime convert during CV StreamReader (C#)


I got issue with convert string to date, during StreamReader:

string line;
StreamReader sr = new StreamReader(file.ToString());
while ((line = sr.ReadLine()) != null)
{
 string col13 = line.Split(',')[13]; //"22/06/2014 00:00:00"    
}

I have tried below code and I got error:

DateTime x = DateTime.Parse(col13); 
//or
DateTime y = Convert.ToDateTime(col13);
//System.FormatException: 'String was not recognized as a valid DateTime.'

CultureInfo culture = new CultureInfo("en-US");
DateTime tempDate = Convert.ToDateTime(col13, culture);
//System.FormatException: 'String was not recognized as a valid DateTime.'

DateTime y = DateTime.ParseExact(col13, "dd/mm/yyyy hh:mm:ss", CultureInfo.InvariantCulture);
//System.FormatException: 'DateTime pattern 'm' appears more than once with different values.'

Solution

  • In DateTime.ParseExact() format, instead of mm use MM

    From MSDN,

    The "MM" custom format specifier represents the month as a number from 01 through 12

    The "mm" custom format specifier represents the minute as a number from 00 through 59.

    So, your DateTime.ParseExact() will be

    DateTime y = DateTime.ParseExact(col13, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                                              //^^      ^^ This needs to update