?id=6045d7fc-9276-44cd-a8f7-785786beee9f
Cómo procesar correctamente en .NET fechas de un AS/400
por José M. Alarcón
Esto es bastante básico, pero a los usuarios más noveles puede que le resulte complicado y precisamente llegué a ello a raíz de la pregunta de un alumno hace poco…
El caso es que los sistemas AS/400 suelen devolver los campos de fecha en un formato similar a este: 20110422, que es tal y como esta almacenado en la base de datos tipo texto. Es decir, el formato es YYYMMDD.
¿Cómo las conviertes en fechas de pleno derecho en .NET?
Si es un campo de texto y siempre tiene este mismo formato exactamente (es decir, cuatro cifras para el año, 2 para el mes y 2 para el día) es muy fácil convertirlo en una fecha usando el método ParseExact de la clase DateTime:
DateTime.ParseExact("20110422", "yyyyMMdd", CultureInfo.InvariantCulture)
Simplemente le indicas la fecha, el formato como segundo parámetro (en este caso cuatro cifras para el año, dos para el mes (ojo, el mes es una M mayúscula, la minúscula son minutos) y dos para el día del mes) y listo.
También podrías hacerlo analizando la cadena separándola en grupos de dígitos, pero no merece la pena complicarse la vida existiendo ParseExact en el propio framework.
Lo dicho: truco rápido y sencillo que seguro que a más de uno le resulta útil :-)
José Manuel Alarcón Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.