在C#中将字符串日期转换为系统日期时间

时间:2011-09-27 09:01:19

标签: asp.net datetime c#-4.0

我想在C#中将字符串日期转换为系统日期时间。用户通过文本框输入日期,应将其转换为日期时间。我讨厌以下代码,但它不起作用......

DateTime ToDate = Convert.ToDateTime(txtToDate.Text);
DateTime FromDate = DateTime.Parse(txtFromDate.Text);

它显示以下异常 “字符串未被识别为有效的DateTime。”

怎么做...... ???

6 个答案:

答案 0 :(得分:2)

无论用户在文本框中输入的内容应采用有效的日期格式,否则请编写自己的函数以使其格式有效。然后将其转换为DateTime格式。

对于不同的格式,您可以检查: http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx

如需更多帮助,您可以在此网站上查看类似问题: Validate a DateTime in C#

答案 1 :(得分:2)

您可以使用DateTime.ParseExact()。这样您就可以指定输入字符串的格式,因此它将被正确解析,例如:

dateString = "Sun 15 Jun 2008";
format = "ddd dd MMM yyyy";
try 
{
  DateTime result = DateTime.ParseExact(dateString, format, CultureInfo.CurrentCulture);
}
catch (FormatException) 
{

}

答案 2 :(得分:1)

要求用户将特定格式的日期时间输入文本框,即"ddMMyyyyhhmmss""dd/MM/yyyy hh:mm:ss tt""dd-MM-yyyy hh:mm:ss tt"或其他一些格式,并使用以下代码的帮助进行转换到有效的日期时间。

 DateTime ToDate = DateTime.ParseExact(txtToDate.Text, <User DateTime format as String>,
 System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)

相反,如果上述编码变得复杂,那么您也可以尝试DateTime.TryParse()

答案 3 :(得分:1)

您当然可以解析用户的输入,并依赖用户始终输入正确的日期。但我建议使用特定控件来输入日期,例如calendar control of the ajax control toolkit

通过使用这样的控件,您可以防止无效输入,并且对用户来说也更容易。如果你搜索DatePicker或类似的,我相信你可以找到很多其他类似的控件。

答案 4 :(得分:0)

首先,您必须验证文本框值是否有效,您可以使用ajax MaskeditExtender控件并限制使用输入仅需要日期格式。

答案 5 :(得分:0)

DateTime dt = Convert.ToDateTime(date); 这里的日期是字符串。