2013-07-16 20 views
-1

我想將字符串轉換爲日期時間。但它給我的例外連續性。 請幫忙。將字符串轉換爲15-07-2013的日期時間異常

DateTime dt = Convert.ToDateTime("15-07-2013"); 

我得到的例外是「字符串未被識別爲有效的DateTime。

現在我有字符串爲「15-07-2013下午七時12分00秒」 當我正在使用下面提到的代碼,我收到異常。

DateTime dtCurrentFile = DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy HH:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None); 

我得到相同的異常。

+0

請回復爲什麼我得到這個例外。 –

回答

1

您可以隨時用強制的DateTime.ParseExact格式,並避免使用InvariantCulture文化問題:

DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None); 

Custom Date and Time Format Strings

然而,你的代碼對我的作品與文化"de-DE"

更新

你必須使用低hh的時間,當您提供的AM/PM指示:

DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None) 

HH指24小時格式,它是沒有意義的,在所有的AM/PM標誌。

+0

請檢查我指出的下一個場景。我收到同樣的錯誤。請檢查問題的下一部分。 –

+0

@lokendrajayaswal:編輯我的答案。 –

+0

它工作。 :)偉大的 –

0

嘗試使用ParseExact:

DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", null); 
0

爲什麼你越來越異常的問題是,默認爲C#支持日期時間以這種格式
「MM/DD/YYYY」裏,你正試圖通過日期時間是這樣的格式爲「DD-MM-YYYY」
雖然可以使用格式轉換但是,你需要告訴編譯器你的日期是在哪種格式所以你可以使用
DateTime myDate = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture);

2

您的字符串格式爲「dd-MM-yyyy」,但Convert.ToDateTime()默認格式爲「MM-dd-yyyy」。因此,選項包括:

  1. 改變你的字符串格式爲 「2013年7月15日」
  2. 強制轉換爲與它使用適應:

    DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy",CultureInfo.InvariantCulture, DateTimeStyles.None);

+0

請檢查我指出的下一個場景。我收到同樣的錯誤。請檢查問題的下一部分。 –

+0

_「默認格式爲」MM-dd-yyyy「」_。這是不正確的,這取決於你的文化。在許多文化中,它是'dd-MM-yyyy',然後OP的原始代碼沒有問題。 –

相關問題