2011-09-27 101 views
0

我想在C#中将字符串日期转换为系统日期时间。用户通过文本框输入日期,并将其转换为日期时间。我TRID下面的代码,但它不工作...在C中将字符串日期转换为系统日期时间#

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

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

如何做到这一点...... ???

+1

它是否抛出任何异常? –

+1

它是如何“不工作”?你有例外吗? –

+0

@ kalyan @ Edwin de Koning我已编辑我的问题..查看它.. –

回答

2

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

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

} 
+0

..如果每个系统有不同的日期时间格式,它会产生任何问题吗? –

+0

我想会。您最好强迫最终用户使用特定格式,例如使用MaskedTextbox。 –

+0

不能使用此方法..仍然显示相同的错误.. –

2

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

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

更多的帮助,您可以在本网站查询类似的问题: Validate a DateTime in C#

+0

@ Pranav ..日期以有效日期时间格式输入,即MM/dd/yyyy(例如,今天9/27/2011) –

+0

如果仍然出现问题,请尝试使用DateTime.TryParse(); – Pranav

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()

1

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

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

0

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

+0

这不回答问题.. – MGZero

0

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

相关问题