¿Existe una API para convertir de formato “YYYYMMDDHHMMSS.UUUUUU-TZO” a C # DateTime?
-
06-09-2019 - |
Pregunta
Ejemplo: "20080807144334,410187-180" (-180 significa GMT menos tres horas Rio de Janeiro en este caso.).
Ese formato de cadena se devuelve cuando consulto tiempos de creación de archivos / / cambio de acceso a través de WMI (que no es totalmente de trabajo; ver aquí ). Creo que podría analizar la manera idiota, extracción años, meses, etc., desde las posiciones de cuerda. Pero me gustaría no reinventar la rueda. constructores de System.DateTime no manejan ese formato. ¿Debo seguir y hacerlo de la manera idiota o hay algo mejor?
Solución
Usted debe ser capaz de usar DateTime.ParseExact
o .TryParseExact
para darle el formato específico de usar al analizar.
Sin embargo, no creo que lo puede conseguir a leer su zona horaria en ese formato (aunque en realidad no puedo encontrar la manera de conseguir que se lea una zona horaria en cualquier formato).
El resto de la misma se vería así:
DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)
Otros consejos
Usted debe echar un vistazo al método DateTime.TryParseExact. Se dejará que se pasa en el formato que se va a convertir de.
http://msdn.microsoft.com/en -us / biblioteca / system.datetime.tryparseexact.aspx