1

如何处理用户输入的日期并将其存储在数据库中的日期字段中?用户使用 jquery datepicker 在文本字段中输入日期。

以下是我的具体需求:
1. 如何将 mm/dd/yy 字符串(选择的 jquery 可以生成任何格式)转换为可作为日期字段存储在数据库中的格式。
2. 如何获取日期,然后将其更改为“2009 年 8 月 11 日,星期三”?

我使用 C# 作为后端,但我也应该能够理解 VB 代码。

谢谢!

4

6 回答 6

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

于 2009-08-11T20:11:05.557 回答
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);

这将完全打印您要求的内容。可以在这里找到不同格式字符串的解释。

于 2009-08-11T20:32:49.633 回答
1

cDate(string) 将为您提供来自字符串的实际日期,并且 dateformat(string,option) 将返回格式化为选项状态的字符串 - longdateformat 是我认为您正在寻找的选项之一。

于 2009-08-11T20:11:52.653 回答
1

用于DateTime.Parse(string)将字符串解析为a DateTime,然后可以将其保存为DateTime数据库中的a。您可能希望按照其他答案中的建议使用 TryParse,以确保可以将提供的字符串解析为DateTime.

要以某种格式返回 DateTime,您可以在 DateTime 上调用 .ToString() 并提供格式或使用其中一种预定义格式,例如ToShortDateString()

于 2009-08-11T20:13:06.320 回答
1

前面的答案将检查它是否是一个日期(虽然我做了一个try catch块来做)一旦你确认字符串是一个日期,你可以将它传递给一个存储过程或将它放在单引号中并制作它是插入/更新语句的一部分:

string yourdateString ="5-5-09";

update table set da='" + yourDateString + "' WHERE id=@id
于 2009-08-11T20:29:38.360 回答
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");

你可以全局持有这种格式并使用它

于 2009-08-11T20:32:56.560 回答