none
problema con fechas cuando los idiomas son diferentes

    Pregunta

  • Hola.

    Tengo un problema con una búsqueda que utiliza  un rango de fechas. me doy cuenta que cuando la aplicación está en idioma español, resuelve bien los resultados, en cambio cuando esta en ingles, siempre es nulo el resultado.

    Cómo hago para que la fecha sea tomada bien, independientemente del idioma de la pagina?

    muchas gracias desde ya

    viernes, 02 de marzo de 2012 17:13

Todas las respuestas

  • Quizas deberias de guardar las fechas en UTC en la base de datos y mandar DateTime.UtcNow a la consulta como parametro.

    Otra idea es que el filtro de fecha lo realizes mediante GETDATE() en el propio procedure si es que usas stored procedures.

    Si nos comentas algo más quizas podamos ser más precisos :)


    Vota mi respuesta si te ha sido útil. Gracias.

    viernes, 02 de marzo de 2012 17:47
  • gracias por la respuesta.

    hago esto:

     [HttpPost]
            public ActionResult Index(BusquedaRangoFechaViewModel busqueda)
            {
                busqueda.ClienteID =((Cliente)Session["Cliente"]).ClienteId;
                ViewBag.Movimientos = (from p in db.CuentaCorrienteCliente where p.ClienteID == busqueda.ClienteID && p.Fecha >= busqueda.Desde && p.Fecha <= busqueda.Hasta orderby (p.Fecha) ascending select p).ToList();
             return View(busqueda);

            }

    EL tema es que si esta en español, 1/2/2012 es primero de febrero. Si esta en ingles, busca enero 2 y si como dato de entrada pongo 31/2/2012 no lo toma como válido y en busqueda.desde me viene como 01/01/0001
    • Editado sepilrat viernes, 02 de marzo de 2012 18:56
    viernes, 02 de marzo de 2012 18:41
  • Ah vale, el problema lo tienes con los datos que recibes del cliente debido a que seguramente sean string no?

    Podrias intentar ver si el CurrentCulture de donde se ejecuta la aplicacion tiene relacion con que lleguen los datos de una forma u otra y si fuese asi parsear la fecha con la cultura correspondiente.

    El espacio de nombre System.Globalization podría echare una mano en este caso


    Vota mi respuesta si te ha sido útil. Gracias.

    viernes, 02 de marzo de 2012 21:04
  • DEbería parsearlo en el cliente para que llegue formateado. Cómo debería hacerlo?

    domingo, 04 de marzo de 2012 16:14
  • Pues imagino que con javascript u otro metodo deberias de enviar la fecha con el formato que decidas tratar en servidor, por ejemplo dd/MM/yyyy HH:mm:ss de este modo la fecha tendrá formato español.


    Vota mi respuesta si te ha sido útil. Gracias.

    domingo, 04 de marzo de 2012 18:50