2016-03-08 283 views

回答

4

使用DateTime.TryParse

var dateString = "Oct 21 2014 1:00 AM"; 
DateTime result; 
DateTime.TryParse(dateString, out result); 
var sqlDate = result.ToString("yyyy-MM-dd HH:mm:ss"); 
0

請參閱答案這裏。

Converting a String to DateTime

DateTime.ParseExact可以爲你工作,以日期時間轉換,然後你可以使用ToString(<format>)與格式轉換所需的字符串。

+0

'DateTime.ParseExact'只有當你事先知道確切的格式時纔有用,如果你不這樣做 - 它會失敗。另外,假設提供的字符串是數據總是被接收的方式,即使'TryParse()'也是多餘的,他應該使用'Parse()'insead。 'ParseExact'只在格式不常見或文化變體不同時有用,不會用任何其他方法解析。在使用'.ParseExact()'之前,總是使用'.Parse()'或'.TryParse()'。 – Gabe

2

我認爲,如果您使用ADO.NET與您的SQL Server進行通信,則不應使用格式化的日期字符串作爲查詢參數。您應該改用DateTime對象。您可以通過使用該DateTime.ParseDateTime.TryParse方法從字符串得到它:

DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM"); // Use this as your query parameter. 

但是,如果你決定去與使用的格式化字符串,最簡單的方法是首先將其解析到如上圖所示,然後您可以使用ToString,並使用格式字符串重載,以根據需要格式化日期。

爲了讓您的例子格式:

DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM"); 
string formatted = DateTime.ToString("yyyy-MM-dd hh:mm:ss"); // 2014-10-21 01:00:00 
+0

鑑於提供的字符串並假設它不會更改,這是正確的方法。 – Gabe

相關問題