Método DateTime.ParseExact
Recentemente me deparei com uma necessidade de converter uma data que estava representada em uma variável do tipo string (2018-09-13 10:45:20).
Minha primeira saida foi a seguinte:
string DataStr = '2018-09-13 10:45:20';
DateTime data = new DateTime(Convert.ToInt32(DataStr.Substring(0, 4)), Convert.ToInt32(DataStr.Substring(5, 2)), Convert.ToInt32(DataStr.Substring(8, 2)), Convert.ToInt32(DataStr.Substring(11, 2)), Convert.ToInt32(DataStr.Substring(14, 2)), Convert.ToInt32(DataStr.Substring(17, 2)));
Muito trampo né.... foi ai que pesquisei os métodos da classe DeteTime e encontrei o ParseExact. Show... faz exatamente o que precisava
string DataStr = '2018-09-13 10:45:20';
DateTime data = DateTime.ParseExact(DataStr, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture;
fica aqui registrado mais uma dica.