2009-08-11 35 views
1

如何處理用戶輸入的日期並將其存儲在數據庫中的日期字段中?日期由用戶在文本字段中使用jquery日期選擇器輸入。在asp.net中使用日期

以下是我的具體需求:
1.如何將mm/dd/yy字符串(jquery採摘可以產生任何格式)轉換爲數據庫中作爲日期字段存儲的格式。
2.如何獲取日期,然後將其更改爲「2009年8月11日星期三」之類的內容?

我使用C#作爲後端,但我也應該能夠理解VB代碼。

謝謝!

回答

1

使用DateTime.Parse(string)將字符串解析爲DateTime,然後可以將該字符串作爲DateTime保存在數據庫中。您可能希望按照其他解答中的建議使用TryParse,以確保提供的字符串可以解析爲DateTime

要以特定格式返回DateTime,可以在DateTime和supply a format上調用.ToString()或使用其中一種預定義格式,例如ToShortDateString()

+0

謝謝 - 這真的很快解釋我! – stringo0 2009-08-11 22:39:55

7
string dateString = "08/11/09"; 
DateTime yourDate; 

if(DateTime.TryParse(dateString, out yourDate)) 
{ 
    // do something with yourDate 
    string output = yourDate.ToString("D"); // sets output to: Tuesday, August 11, 2009 
} 
else 
{ 
    // invalid date entered 
} 

這裏是DateTime格式字符串列表:http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

+0

感謝您的例子!我慢慢明白,在看到拉斯的回答後,它回答了這兩個部分。 – stringo0 2009-08-11 22:40:38

1

CDATE(串)會給你一個字符串的實際日期,日期格式(字符串,可選)將返回格式化爲選項字符串狀態 - longdateformat是我認爲你正在尋找的選項之一。

1

以前的答案會檢查它是一個日期(儘管我做了trycatch塊做) 一旦確認該字符串是日期,你可以把它傳遞給存儲過程或將其放在單引號中,並使其成爲插入/更新語句的一部分:

string yourdateString ="5-5-09"; 

update table set da='" + yourDateString + "' WHERE [email protected] 
2

我同意John Rasch的解決方案。人們通常不知道的是,您也可以使用String.Format(...)方法來格式化日期(和其他數據類型)。對於日期,使用T oString()方法顯然更方便,因爲日期提供了這樣的功能,但其他數據類型可能會返回對象的地址ToString()

所以給你從數據庫中獲取你的約會或地方爲DateTime對象,你可以做到以下幾點:

DateTime date = DateTime.Now; //normally would come from somewhere else 

//Wednesday, Aug 11, 2009 <-- what we want to get displayed 
string displayFormat ="dddd, MMM dd, yyyy"; 
string formattedDate = string.Format("{0:" + displayFormat + "}", date); 

Response.Write(formattedDate); 

這正是你打印什麼要求。不同格式字符串的解釋可參見here

+0

感謝提示,它主要用於日期數據類型。 – stringo0 2009-08-11 22:43:06

1

無論哪種格式,你解析你的DateTime字段

DateTime dt = DateTime.Now;//*example 
//FormatString for "Wednesday, Aug 11, 2009" is *dddd,MMM dd,yyyy* 
string formattedString = dt.ToString("dddd,MMM dd,yyyy"); 

您可以全局持有這種格式,並用它