我有一個叫TheUserTime字符串,看起來像這樣:分割字符串數組在C#創建日期時間
string TheUserTime = "12.12.2011.16.22"; //16 is the hour in 24-hour format and 22 is the minutes
我想整型的數組中分割字符串來從該日期時間(會發生什麼當它是0?)和組成日期對象。
這樣做的最好方法是什麼?
謝謝。
我有一個叫TheUserTime字符串,看起來像這樣:分割字符串數組在C#創建日期時間
string TheUserTime = "12.12.2011.16.22"; //16 is the hour in 24-hour format and 22 is the minutes
我想整型的數組中分割字符串來從該日期時間(會發生什麼當它是0?)和組成日期對象。
這樣做的最好方法是什麼?
謝謝。
您應該使用DateTime.ParseExact
或DateTime.TryParseExact
與custom format string代替。
ParseExact
:
DateTime.ParseExact("12.12.2011.16.22", "dd.MM.yyyy.HH.mm",
CultureInfo.InvariantCulture)
TryParseExact
:
DateTime dt;
if(DateTime.TryParseExact("12.12.2011.16.22", "dd.MM.yyyy.HH.mm",
CultureInfo.InvariantCulture, DateTimeStyles.None,
out dt))
{
// parse successful use dt
}
使用TryParseExact
避免了可能的異常,如果解析失敗,雖然是dt
變量將有DateTime
默認值這種情況。
我不會推薦你的方法,而是使用ParseExact
並指定預期的格式。
string theUserTime = "12.12.2011.16.22";
var date = DateTime.ParseExact(theUserTime, "MM.dd.yyyy.HH.mm", CultureInfo.CurrentCulture);
答案是好的,但我們的假設,該字符串theUserTime將被硬編碼,我會建議傳遞變量theUserTime =的String.Format(DateTime.now.ToString( 「MM.dd.yyyy.HH.mm」)); ParseExact更好,因爲如果它不能解析租約,你會知道爲什麼,關於格式.. – MethodMan
您可以使用:
DateTime.ParseExact("12.12.2011.16.22", "MM.dd.yyyy.HH.mm", System.Globalization.CultureInfo.InvariantCulture);
好吧,感謝TryParseExact的想法,以防s#* t發生。 – frenchie
我得到了「沒有重載方法TryParseExact需要4個參數;我需要改變什麼? – frenchie
@frenchie - 你使用的是什麼版本的.NET?看看TryParseExact的鏈接,它詳細說明了正確的重載。錯誤了一個參數 – Oded