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

anonym0use
źródło

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ę .

Blair Conrad
źródło
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);
bert
źródło