2013-04-29 135 views
0

我有以下字符串存儲在數據表中的列與VARCHAR或字符串數​​據類型 「2013年4月29日下午九點零零分00秒」C#字符串日期時間在c#

現在我想這個字符串轉換成datetime

或 讓我更清楚 我只是想從這個字符串中提取時間部分「2013年4月29日9:00:00」 並將其存儲在數據庫中。 請幫幫我。 在此先感謝

+1

http://msdn.microsoft.com/en-us/library/vstudio/cc165448.aspx或http://www.codeproject.com/Articles/14743/Easy-String-to-DateTime-DateTime-to-String-and-For – bema 2013-04-29 09:50:16

+0

你有沒有簽出MSDN文檔? http://msdn.microsoft.com/en-us/library/cc165448.aspx – HuorSwords 2013-04-29 09:50:17

+1

你想把它存儲回來作爲一個字符串,或作爲一個不同的字符串類型? – 2013-04-29 09:50:22

回答

1

好的,這是一個相當簡單的操作,您可以使用DateTime date = DateTime.Parse(dbString),然後使用date.ToString("hh:mm tt")爲了得到時間和上午/下午。其形式爲 「下午9點」

'HH' 代表小時01到12,

'毫米' 代表分鐘00〜59,

'TT' 表示AM/PM

您還可以使用date.ToString("h:mm tt")獲取表格「9:00 PM」。

0
DateTime yourDateTime = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture); 
0

試試這個:

string myDateTimeString = "4/29/2013 9:00:00 PM"; 
    DateTime myDateTime = DateTime.Parse(myDateTimeString); 
    string myTimeString = myDateTime.Date.ToString("hh:mm tt"); 

希望這有助於!

4
// String to DateTime 
String MyString; 
MyString = "4/29/2013 9:00:00 PM"; 

DateTime MyDateTime; 
MyDateTime = new DateTime(); 
MyDateTime = DateTime.ParseExact(MyString, "M/dd/yyyy hh:mm:ss tt", 
            null); 

這應該適合你。字符串的SQL

+0

+1因爲這個答案不會使UASA根據數據庫本地或代碼訪問它的假設。 – 2013-04-29 09:56:51

+0

幾乎是正確的 - 你真的應該有'MM/dd/yyyy hh:mm:ss tt'',因爲月份可能是兩位數字。 – 2013-04-29 09:58:20

+0

+1給格式,因爲多次日期解析是一個痛苦的屁股。如果我們事先知道格式,最好給它。在寫作部分也必須小心。 – sarat 2013-04-29 09:58:54

0

時間部分:

select DATEPART(HOUR , cast('4/29/2013 9:00:00 PM' as datetime)) as hr 
     , DATEPART(MINUTE , cast('4/29/2013 9:00:00 PM' as datetime)) as minute 
     , DATEPART(SECOND , cast('4/29/2013 9:00:00 PM' as datetime)) as sec 
+0

他不問SQL時間格式! – Elyor 2013-04-29 10:50:16

+0

@lelyor - 其實他做到了。 – 2013-04-29 11:28:17

+0

嗯,我現在不是:) – Elyor 2013-04-29 11:39:48

0

或者試試這個分機:

public static class Ext 
{ 

    public static string AsLocaleDateString(this DateTime dt) 
    { 
     var format = Thread.CurrentThread.CurrentUICulture.DateTimeFormat; 

     return dt.ToString(format.ShortDatePattern); 
    } 

    public static DateTime? AsLocaleDate(this string str) 
    { 
     if (str.IsNullEmpty()) 
     { 
      return null; 
     } 
     var format = Thread.CurrentThread.CurrentUICulture.DateTimeFormat; 

     return DateTime.ParseExact(str, format.ShortDatePattern, CultureInfo.InvariantCulture, DateTimeStyles.None); 
    } 

}