none
Error a la hora de pasar un string a tipo fecha. RRS feed

  • Pregunta

  • Hola a todos. Trabajo en Visual studio 2010.

    Os comento mi problema:

    Tengo en mi formulario dos MaskedTextBox donde introduzco dos fechas.  Estas son sus propiedades.

    Cuando ejecuto el proyecto e introduzco ambas fechas, hay veces que me funciona sin problemas ninguno y la mayoría me sale error.

    Aquí os pongo en imágenes todo el código que utilizo y el error que me da, vale. Esta es la del código. He puesto también, la clase a la que llama para guardar las fechas.



    Saluditos, Charo

    miércoles, 11 de marzo de 2015 19:09

Respuestas

  • Hola

    El problema es que el formato de fecha te recibe mes/dia/año

    y tu envias dia/mes/año, cambia el formato de la fecha... hace un convert.todatetime, y dale el formato que espera... tambien un poco a la antigua... puedes sacar los substring de mes y dia y crear una nueva cadena con el formato correcto...

    lo del formato seria ALGO asi

    miVariableString = Convert.ToDateTime("masktexbox.text" + "00:00:00").ToString("dd/MM/yyyy");

    para mes dia año seria ToString("MM/dd/yyyy");

    Comenta para saber como te fue...

    y si te sirvio marca como respuesta

    • Marcado como respuesta charoeci1 jueves, 12 de marzo de 2015 9:31
    miércoles, 11 de marzo de 2015 19:37

Todas las respuestas

  • Aquí os pongo la imagen con el error 

    y otro sin error para que veáis un ejemplo de fecha que si me coge.

    Yo no le encuentro el porque de este error.

    Si necesitáis más información, pedírmela.

    Gracias de antemano.


    Saluditos, Charo

    miércoles, 11 de marzo de 2015 19:11
  •     Que tal amigo que resultado obtenes  depurando?? Asi vas a poder detectar el errror, Fijate si te trae valores en tu txtFechaDesde y txtFechaHasta. Porque veo en tu  codigo que estas haciendo un casteoa al tipo CDate.

    OBS: Favor vota si te es útil la información.
    Saludos
    Bader Molinas - Paraguay
    https://tcsystems.wordpress.com/

             
    miércoles, 11 de marzo de 2015 19:17
  • Hola Bader, esto es lo que quieres saber de 

    Aquí ya me da el error.

    Gracias 


    Saluditos, Charo


    • Editado charoeci1 miércoles, 11 de marzo de 2015 19:26
    miércoles, 11 de marzo de 2015 19:24
  • Puedes utilizar el método ParseExact:

    .FromDate = Date.ParseExact(Me.FechaDesdetxt, "d", CultureInfo.InvariantCulture)
    

    miércoles, 11 de marzo de 2015 19:32
  • Hola

    El problema es que el formato de fecha te recibe mes/dia/año

    y tu envias dia/mes/año, cambia el formato de la fecha... hace un convert.todatetime, y dale el formato que espera... tambien un poco a la antigua... puedes sacar los substring de mes y dia y crear una nueva cadena con el formato correcto...

    lo del formato seria ALGO asi

    miVariableString = Convert.ToDateTime("masktexbox.text" + "00:00:00").ToString("dd/MM/yyyy");

    para mes dia año seria ToString("MM/dd/yyyy");

    Comenta para saber como te fue...

    y si te sirvio marca como respuesta

    • Marcado como respuesta charoeci1 jueves, 12 de marzo de 2015 9:31
    miércoles, 11 de marzo de 2015 19:37
  •       Con el .FromDate = Date.ParseExact(Me.FechaDesdetxt, "d", CultureInfo.InvariantCulture)  se soluciona el problema. Pero si tienes en varios formularios de fecha debes de colocar la misma forma en todos. Eso es por la configuracion regional que tienes en tu PC.

            Si queres que afecte a todo los formularios que tengan fecha  y numero poder usar el siguiente codigo

    //Configuracion regional
    Dim CADCultureref As New CultureInfo("es-ES")
    Application.CurrentCulture = CADCultureref
    CADCultureref = Thread.CurrentThread.CurrentCulture
    Dim CADNumFormatref As New NumberFormatInfo()
    CADNumFormatref = Thread.CurrentThread.CurrentCulture.NumberFormat
    
    //Formato de numero
    CADNumFormatref.CurrencyGroupSeparator = ","
    CADNumFormatref.CurrencyDecimalSeparator = "."
    CADCultureref.NumberFormat = CADNumFormatref
    https://msdn.microsoft.com/es-es/library/system.globalization.cultureinfo%28v=vs.100%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

    OBS: Favor vota si te es útil la información.
    Saludos
    Bader Molinas - Paraguay
    https://tcsystems.wordpress.com/

            
    miércoles, 11 de marzo de 2015 19:53
  • Hola Julio, el formato que me pones también me da error. Así que lo que voy a hacer para que no me más problemas es crear una nueva cadena con el formato correcto.

    Gracias.


    Saluditos, Charo

    jueves, 12 de marzo de 2015 9:31