Cadeia de caracteres não foi reconhecida como DateTime válido - Internet Explorer e Microsoft Edge somente
Fala pessoal. Tudo bem!?
Estou com um erro que está me deixando maluco.
Estou tentando fazer um parse de string para datetime e não estou conseguindo.
var dt = DateTime.ParseExact(data, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
A variável data vem de uma requisição AJAX (Angular) via POST.
public JsonResult ListaParcelas(string codigo, string tipo, string data = null, int? leiAgregacao = null, IList<ParcelaAgregacao> parcelas = null)
Ao tentar passar essa linha acima, ele gera o erro:
"Cadeia de caracteres não foi reconhecida como DateTime válido"
Vamos aos detalhes.... A variável {data} está com a data formata de hoje, ou seja, 20/06/2017.
Abrindo o Immediate Window e tentar executar:
DateTime.ParseExact(data, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
Gera erro. Porém, se executar:
DateTime.ParseExact("20/06/2017", "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
Funciona.
OK... Como uma forma de tentar resolver o problema, resolvi fazer um SPLIT dessa informação pela barra e dar um new Date informando cada campo separadamente.
Para minha surpresa, apresenta um erro de parse no momento de converter para int o dia.
if (!string.IsNullOrEmpty(data))
{
var parteData = data.Split(@"/".ToCharArray());
var dia = int.Parse(parteData[0]);
var mes = int.Parse(parteData[1]);
var ano = int.Parse(parteData[2]);
dataVencimento = new DateTime(ano, mes, dia);
}
E este problema só ocorre com o Internet Explorer e o Microsoft Edge. Se eu utilizar o Google Chrome, Firefox, Opera, Safari, etc etc etc, funciona.
Alguma dica?Discussão (6)
Carregando comentários...