2013-05-10 15 views
5
string formatString = "MMddyyyyHHmmss"; 
string sample = "20100611221912"; 
DateTime dt = DateTime.ParseExact(sample, formatString, System.Globalization.CultureInfo.InvariantCulture); 

specyficzny wyjątek rzucony jest:DateTime.Parse rzuca wyjątek "nie obsługują w System.Globalization.GregorianCalendar"

System.FormatException: The DateTime reprezentowany przez łańcuch nie jest obsługiwana w kalendarzowym System.Globalization. Kalendarz gregoriański.

+0

Spójrz na plik fmt i próbkę: 'MM == 20'. –

+0

Jaką datę uważasz? Czy pasuje do dostarczanego formatu? – AakashM

Odpowiedz

3

formatu powinny być:

string formatString = "yyyyMMddHHmmsss"; 

(może to być również "yyyyddMMHHmmsss", jeśli jest to 06-Noveber-2010)

Zważywszy wybranego terminu dt = {11/06/2010 10:19:12 PM} (11-cze-2010)

Na obecnym formacie:

MMddyyyyHHmmss 
20100611221912 

MM nie może być 20, ponieważ MM oznacza miesiąc. Twój kod powinien być:

string formatString = "yyyyMMddHHmmsss"; 
string sample = "20100611221912"; 
DateTime dt = DateTime.ParseExact(sample, formatString, System.Globalization.CultureInfo.InvariantCulture); 
+0

Czy nie możemy przekonwertować ciągu znaków na inny określony format niż oryginał na DateTime? Mam ciąg DateTime w formacie "yyyyMMddHHmmsss" i chciałem go przekonwertować na DateTime "MMddyyyyHHmmss" – user2323308

+0

@ user2323308, na pewno możesz, najpierw Przetwórz go na obiekt DateTime, a następnie użyj 'DateTime.ToString (" MMddyyyyHHmmss ");' – Habib

+0

It pracował .... thanx – user2323308

1

Jeśli nie chcesz importować 10. dnia 20. miesiąca roku 611, ciąg znaków formatowania lub dane są błędne. Czy chcesz importować przy użyciu "yyyymmddHHmmss"?

Powiązane problemy