2009-04-21 14 views
7

¿La función C# Convert.ToDateTIme lee la fecha como "dd/mm/aaaa" o "mm/dd/aaaa"?¿La función C# Convert.ToDateTIme lee la fecha como "dd/mm/aaaa" o "mm/dd/aaaa"?

Tengo la misma aplicación en mi máquina local que cargué en mi servidor compartido remoto. Funcionaba perfectamente en mi máquina local y decía "dd/mm/aaaa", pero en mi máquina remota, parece leer las fechas como "mm/dd/aaaa". Tengo la misma configuración cultural "en-GB" en ambos.

Encuentro esta conversión de fecha muy impredecible. ¿Alguien puede recomendar una forma a prueba de cultura de leer cadenas de fechas desde una base de datos de SQL Server 2005?

+0

@Avinash: Teniendo en cuenta que tiene más de 500 repeticiones, yo esperaría que usted sabe cómo usar Markdown lo suficiente para dar formato a sus preguntas correctamente. http://stackoverflow.com/editing-help – Cerebrus

+1

Quizás no. La página de reducción dice "(la tecla de retroceso se encuentra en la esquina superior izquierda de la mayoría de los teclados). Pero la cultura de Avinash no es EE. UU. –

+1

@WindowsProgrammer: creo que estás muy equivocado. La "cultura" de Avinash es casi indudablemente india (igual que la mía) y el diseño del teclado de EE. UU. Es la norma en India. Además, un usuario no está limitado a usar el teclado para formatear preguntas porque la caja de herramientas proporciona enlaces para esto. Me resulta muy extraño cuando las personas defienden la incompetencia. – Cerebrus

Respuesta

3

¿Por qué no simplemente utiliza el tipo de datos datetime? Entonces, desde su lector de datos SQL, utilice: reader.GetDateTime (int columna)

Otra opción: si tiene que pasar las fechas en las cadenas, utilice el formato ISO: AAAA-MM-dd

2

¿Cómo se sus fechas realmente almacenadas en SQL Server? Si están almacenados como datetime, entonces debería poder leerlos como valores DateTime y no necesitar usar Convert.ToDateTime(). ¿Puede mostrarnos la consulta y/o el código de C#?

Editar

Usted me confundió con la mención de SQL Server al final de su pregunta! ¿Ha considerado usar un DateTimePicker en lugar de un TextBox? ASP.NET tiene controles de selector de fecha, ¿verdad? Entonces podría hacer el análisis sintáctico para ti.

+0

quiero convertir el datetime de textbox.In mi servidor local utilicé Convert.toDatetime ("MM/dd/aaaa") y esto está funcionando. Pero en servidor cargado no funciona. .. – Avinash

4

Bueno, por los sonidos de ... Una de las configuraciones en el servidor está desactivada.

Me gustaría ir a través de la "Región & Idioma" Opciones con un peine de dientes finos y asegúrese de que algo no se anula, pero si eso no funciona.

usted podría intentar establecer explícitamente la información Cultura

  string x = "21/01/2009"; 

     CultureInfo ci = new CultureInfo("en-GB"); 

     Convert.ToDateTime(x, ci); 
Cuestiones relacionadas