2014-01-09 65 views
-1

我想將字符串轉換爲c#中的datetime。我想下面將字符串轉換爲datetime時字符串未被識別爲有效的DateTime錯誤

DateTime.ParseExact("01.01.2014 11:48:25","yyyy-MM-dd hh:mm:ss",System.Globalization.CultureInfo.CurrentCulture) 

,但我得到的錯誤String was not recognized as a valid DateTime

我試着做Convert.ToDateTime但它切斷小時,分鐘和秒。

如何擺脫這個問題?

UPDATE1 我一直在使用像

DateTime.ParseExact("01.01.2014 11:48:25","dd-MM-yyyy hh:mm:ss",System.Globalization.CultureInfo.CurrentCulture) 

但也試過我還是得到同樣的錯誤

UPDATE2 使用代碼

DateTime.ParseExact("01.01.2014 11:48:25","dd.MM.yyyy HH:mm:ss",System.Globalization.CultureInfo.CurrentCulture) 

其工作正常後。但如果日期作爲"01/01/2014 11:48:25"通過,那麼這種格式不會工作。

+1

只要看看在你提供的格式字符串。它甚至看起來像是使用與「01.01.2014 11:48:25」相同的格式嗎? – Dirk

+0

@Dirk嗯,我已經嘗試使用yyyy-MM-dd hh:mm:ss和dd-MM-yyyy hh:mm:ss – Happy

+0

在兩個字符串中使用相同的分隔符。你使用連字符和標點符號,就像它們一樣。 – scheien

回答

1

DateTime對象提供ParseExact()方法的三個過載。你可以嘗試使用以下過載使用指定的格式數組轉換規定string爲其等效DateTime

DateTime.ParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style) 

例子:

... 
// define the possible date formats 
var formats = new[] { 
    "dd.MM.yyyy HH:mm:ss", 
    "dd-MM-yyyy HH:mm:ss", 
    "dd/MM/yyyy HH:mm:ss" 
}; 

DateTime.ParseExact("01.01.2014 11:48:25", formats, System.Globalization.CultureInfo.CurrentCulture, DateTimeStyles.None); 
... 
1

嘗試此代替:

DateTime.ParseExact("01.01.2014 11:48:25", "dd.MM.yyyy hh:mm:ss", System.Globalization.CultureInfo.CurrentCulture); 
+0

但是,如果我得到像01/012014 11:48:25 – Happy

+0

字符串會發生什麼?你嘗試過嗎? – openshac

相關問題