Jump to content
Guilherme Teodoro

Cadeia de caracteres não foi reconhecida como DateTime válido - Internet Explorer e Microsoft Edge somente

Recommended Posts

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?

Edited by Guilherme Teodoro
Adicionando informações que podem ser úteis

Share this post


Link to post
Share on other sites
5 minutos atrás, Guilherme Teodoro disse:

Não tenho construtor de DateTime recebendo String.

Qual a namespace do seu DateTime?

É não tem, me equivoquei, foi mal.

var data = "20/11/2017"; // ou "2017/11/20"
var date = DateTime.Parse(data);

ou com tryparse

var dataString = "20/11/2017"; // ou "2017/11/20"
DateTime data;
if(!DateTime.TryParse(dataString, out data))
{
	//erro
}

 

Share this post


Link to post
Share on other sites

Mas o que vem dentro dessa variável?

Não tem diferença se vem de post ou get. O que importa é o valor dela. 

Acho que está vindo algo errado, senão teria funcionado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By kelvinferraz
      Boa noite pessoal,
       
      Estou desenvolvendo uma aplicação e estou utilizando o método Auth do Laravel 5.8. Aparentemente esta tudo funcionando, acesso a certas áreas solicitam login. Eu gostaria de saber como faço para limitar o acesso de registro de usuários de um modo mais simples, pois andei pesquisando e existe formas de criar uma conta admin, mas para o meu propósito não teria necessidade de tanta complexidade, apenas gostaria de limitar o acesso ao http://localhost:8000/register para uma conta de e-mail especifica, ou mesmo se precisar criar um campo na tabela para validar se existe, não sei direito como fazer isso, estou aprendendo faz pouco tempo a respeito do Laravel.
       
      Exemplo de como esta funcionando minha app:
      http://localhost:8000/sistema === REQUER LOGIN PARA ACESSO
      http://localhost:8000/register == TAMBEM REQUER LOGIN, PORÉM QUALQUER USUÁRIO LOGADO FAZ REGISTRO DE NOVO USUÁRIO PARA ESSA ROTA EU GOSTARIA DE LIMITAR APENAS AO MEU EMAIL OU NOME DE USUÁRIO CADASTRADO.
       
       
       
       
      Obrigado!
    • By Felipe Nobre
      boa noite galera
      Alguém sabe como corrigir esse erro? Eu consigo gerar o PDF normalmente quando o texto não inclui caracteres especiais ou 
      caracteres comuns como acentos etc..
      No app config pensei que fosse o UTF mas está como padrão UTF-8
      Creio que deve ser alguma renderização. PS: Estou utilizando a fonte padrão ARIAL no design do meu report. Minhas referencias com versão mais atual são essas


    • By lucas9
      Com base nos conceitos de reutilização de código e flexibilidade, você deve planejar uma classe de faturamento com o método faturar. Lembre-se que não é permitido reescrever métodos; no entanto, deve ser considerado que cada perfil de cliente tem uma regra de faturamento diferente. Veja:
      Cliente pessoa física recebe um desconto de 15% e tem 30 dias para pagar. Cliente pessoa jurídica recebe um desconto de 20% e tem 60 dias para pagar. Cliente governo não recebe desconto e deve pagar à vista. Use os comandos try e catch para tratar as possíveis exceções (por exemplo, tentar ler mais clientes do que existem).
    • By Estevão Alves Avelino
      Estou com duvidas de como pegar os dados digitados no DataGridView e jogar dentro de variáveis, se alguém souber uma maneira de fazer isso ficarei muito grato!
    • By Estevão Alves Avelino
      Estou com duvidas de como pegar os dados digitados no DataGridView e jogar dentro de variáveis, se alguém souber uma maneira de fazer isso ficarei muito grato!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.