datetime.parse i sprawić, by działał z określonym formatem


141

Mam datetime wracającą z pliku XML w formacie:

20080916 11:02

jak w

rrrrmm gg: ss

Jak mogę uzyskać funkcję datetime.parse, aby to odebrać? To znaczy przeanalizować bez błędu? Twoje zdrowie

Odpowiedzi:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

zakładając, że chciałeś powiedzieć, że minuty następują po godzinach, a nie sekundach - twój przykład jest trochę zagmatwany.

Dokumentacja ParseExact zawiera szczegółowe informacje o innych przeciążeniach, na wypadek gdyby analiza była automatycznie konwertowana na czas uniwersalny lub coś podobnego.

Jak wspomina @ Joel Coehoorn , istnieje również opcja użycia TryParseExact , która zwróci wartość logiczną wskazującą na sukces lub niepowodzenie operacji - nadal jestem na .Net 1.1, więc często o tym zapominam.

Jeśli chcesz przeanalizować inne formaty, możesz sprawdzić standardowe ciągi formatujące datę i godzinę .


11
Nie zapomnij o DateTime.TryParseExact ()
Joel Coehoorn,

Ponadto: standardowy XML ma swój własny bardzo specyficzny format DateTime i narzędzia .Net Xml powinny być w stanie go odczytać.
Joel Coehoorn

W tym przypadku działa poprawnie z ostatnim parametrem równym null, ale dla każdego, kto znajdzie ten CultureInfo.InvariantCulture, w przeciwnym razie możesz mieć problemy, jeśli twoja data i godzina jest taka jak „1823/01/01”.
Todilo,

@JoelCoehoorn standard XML specific DateTime format?
Kiquenet,

10

Dzięki za wskazówkę, użyłem tego do przeanalizowania mojej daty "20071122", potrzebowałem dodać style danych, nie użyłem żadnego i zadziałało:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.