Existe uma API para converter de um formato “YYYYMMDDHHMMSS.UUUUUU-TZO” para C # DateTime?
-
06-09-2019 - |
Pergunta
Exemplo: "20080807144334,410187-180" (.. -180 meios GMT menos três horas do Rio de Janeiro, neste caso)
Esse formato da cadeia é devolvido quando eu consulta vezes criação de arquivo / alterar / acesso via WMI (que não é totalmente de trabalho; ver aqui ). Acho que eu poderia analisá-lo da maneira idiota, extraindo ano, mês, etc. a partir das posições de cordas. Mas eu gostaria de não reinventar a roda. construtores de System.DateTime não lidar com esse formato. Devo ir em frente e fazer isso da maneira idiota ou há algo melhor?
Solução
Você deve ser capaz de usar DateTime.ParseExact
ou .TryParseExact
para dar-lhe o formato específico para uso ao analisar.
No entanto, eu não acho que você pode obtê-lo para ler o fuso horário em que formato (embora eu não posso realmente descobrir como obtê-lo para ler um fuso horário em qualquer formato).
O resto ficaria assim:
DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)
Outras dicas
Você deve dar uma olhada no método DateTime.TryParseExact. Ele vai deixar você passar em seu formato que você está convertendo de.
http://msdn.microsoft.com/en -us / library / system.datetime.tryparseexact.aspx