如何处理用户输入的日期并将其存储在日期字段中的数据库中?用户使用文本字段中的jquery datepicker输入日期。
以下是我的具体需求:
1.如何将mm / dd / yy字符串(选择的jquery可以生成任何格式)转换为数据库中可存储的格式作为日期字段。
2.如何获取日期然后将其更改为“2009年8月11日星期三”?
我正在使用C#作为后端,但我也应该能够理解VB代码。
谢谢!
答案 0 :(得分: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
答案 1 :(得分: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。
答案 2 :(得分:1)
cDate(string)将为您提供字符串中的实际日期,而dateformat(string,option)将返回一个格式为选项状态的字符串 - longdateformat是我认为您正在寻找的选项之一。 / p>
答案 3 :(得分:1)
使用DateTime.Parse(string)
将字符串解析为DateTime
,然后可以将其保存为数据库中的DateTime
。您可能希望按照其他答案中的建议使用TryParse,以确保提供的字符串可以解析为DateTime
。
要以特定格式返回DateTime,您可以在DateTime和supply a format上调用.ToString()或使用其中一种预定义格式,例如ToShortDateString()
答案 4 :(得分:1)
之前的答案会检查是否为日期(虽然我执行了try
catch
阻止
确认字符串为日期后,您只需将其传递给存储过程或将其放在单引号中,并使其成为插入/更新语句的一部分:
string yourdateString ="5-5-09";
update table set da='" + yourDateString + "' WHERE id=@id
答案 5 :(得分: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");
您可以全局保留此格式并使用它