我正在使用一种方法来验证文本框。
public bool ValidateDateTimeTextBoxes(params TextBox[] textBoxes)
{
DateTime value = DateTime.Today;
//string dateFormat = "dd/mm/yyyy";
foreach (var textBox in textBoxes)
{
if (!DateTime.TryParse(textBox.Text, out value))
{
return false;
}
}
return true;
}
我也要查看格式。它需要mm/dd/yyyy
,但希望它为dd/mm/yyyy
答案 0 :(得分:17)
DateTime dt;
DateTime.TryParseExact(textBox.Text,
"dd/MM/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt);
如果要在问题中更新时检查多种格式,则可以使用TryParseExact
的另一种重载方法,该方法将format
参数作为字符串数组。
string[] formats = { "dd/MM/yyyy", "MM/dd/yyyy" };
DateTime.TryParseExact(txtBox.Text,
formats,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out value));
请注意格式字符串。正如您所提到的格式为dd/mm/yyyy
。此处mm
代表minute
而非月份。使用MM
作为月份表示。
答案 1 :(得分:2)
DateTime.TryParseExact(textBox.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out outDt))
答案 2 :(得分:1)
public bool ValidateDateTimeTextBoxes(params TextBox[] textBoxes)
{
DateTime value = DateTime.Now;
//string dateFormat = "dd/mm/yyyy";
foreach (var textBox in textBoxes)
{
if (!DateTime.TryParse(textBox.Text,"dd/mm/yyyy",new CultureInfo("en-US"),
DateTimeStyles.None out value))
{
return false;
}
}
return true;
}
答案 3 :(得分:1)
尝试使用TryParseExact
将指定的日期和时间字符串表示形式转换为其DateTime等效形式。字符串表示的格式必须与指定的格式完全匹配。该方法返回一个值,指示转换是否成功。
DateTime.TryParseExact(DateValue,
"dd/mm/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out outDatetime);
答案 4 :(得分:1)
使用TryParseExact
而不是更快。
例如:
using System;
using System.Globalization;
class Program
{
static void Main()
{
string dateString = "27/05/2012"; // <-- Valid
string dtformat = "dd/mm/yyyy";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, dtformat, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime))
{
Console.WriteLine(dateTime);
}
}
}