Convert.ToString (DateTime) con formato UK en lugar de US
Tengo un problema en el que una cadena C # DateTime no se puede convertir a SQL DateTime porque misteriosamente se está formateando como una fecha del Reino Unido (dd / MM / aaaa). Aquí está la serie de eventos:
Se crea un objeto en un servidor remoto en los EE. UU. Y se serializa a xml. El xml se deserializa en una computadora local en CA de nuevo a un objeto. La fecha de serialización se ve así: 2011-07-13T09: 56: 57.0542425 La aplicación intenta guardar el objeto en la base de datos llamando al procedimiento almacenado mencionado anteriormente. (Innecesariamente) convierte la fecha en una cadena antes de pasarla como parámetro a la sproc usando Convert.ToString (DateTime). El sproc falla con la SqlException "Error al convertir el tipo de datos nvarchar a datetime" porque la cadena que recibió para su parámetro tipeado DateTime estaba en el formato dd / MM / aaaa (y el idioma de la base de datos es inglés EE. UU.).Ahora, el código no debería convertir la fecha y hora en una cadena solo para volver a convertirla en una fecha y hora en SQL, pero este problema comenzó a suceder (en más de una computadora) después de que todo estuvo bien durante más de un año. Así que pensé que la cultura de la base de datos o el sistema operativo debe haber cambiado recientemente, lo que provocó que usaran diferentes formatos de fecha. Para mi sorpresa, después de cambiar el sistema operativo (Windows 7) de inglés (Canadá) a inglés (EE. UU.) Y reiniciar, el problema aún ocurre. Para hacerlo aún más confuso, el error no ocurre cuando se crea localmente el mismo tipo de objeto en lugar de ser deserializado, independientemente de la configuración regional. La única diferencia es que la versión de serialización ocurre en un servicio de Windows y la versión del objeto creado localmente ocurre en una aplicación de Windows. Ambos usan su propia copia del ensamblado que llama a Convert.ToString (DateTime) pero están usando la misma versión de ese ensamblado. Estoy completamente confundido.
PD. .NET 2.0 y SQL Server 2005