【发布时间】:2017-05-02 17:06:46
【问题描述】:
c 锐利
我正在尝试检查用户对过期日期字段的输入并验证日期是否在今天之后。
输入格式为 yyyy-MM-DD
我在将字符串转换为有效的日期时间格式时遇到问题
我发现使用的例子
System.Globalization.CultureInfo.InvariantCulture.DateTimeStyles.None 不会编译
这是我的代码
// initate with button
private void ChkDateBtn_Click(object sender, EventArgs e)
{
stInputDate = DateTxtBx.Text; // input from text box
// bExpDateLater already defined as bool
bExpDateLater = ValidateExpDate(stInputDate);
if (bExpDateLater == true)
{
OutputTxtBox.Text = "This is a valid Date";
}
else
{
OutputTxtBox.Text = "This is not a valid Date";
}
}
// validate date as later than today
private bool ValidateExpDate(string expdate)
{
// expdate string format yyyy-MM-dd
DateTime sDateNow = DateTime.Now;
// remove hyphen from date
expdate = expdate.Replace("-", "");
string format = "yyyyMMdd";
DateTime sCompareDate;
DateTime.TryParseExact(expdate, format,System.Globalization.CultureInfo.InvariantCulture.DateTimeStyles.None, out sCompareDate);
if (sDateNow < sCompareDate)
{
return true;
}
else
{
return false;
}
}
任何建议将不胜感激
【问题讨论】:
-
输入格式为 yyyy-MM-DD 而不是 yyy-MM-DD
-
你少了一个逗号 - 它应该是
System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None -
你在代码中使用的格式是
yyyyMMdd,而不是yyyy-MM-dd -
TryParseExact() 返回一个关于它是否成功的布尔值。您可能应该使用它来确保您不会抛出以下几行。