怎么验证输入的日期格式为yyyy-MM-dd,求指教

时间:2021-09-22 13:58:39
日期的值写在TEXTBOX1中,点击查询时怎么判断TEXTBOX1输入的值为yyyy-MM-dd格式。求C#代码。不要用验证控件验证,谢谢高手们,请指教

15 个解决方案

#1


My97DatePicker 控件,

#2


用正则式判读,网上很多的。

--------------------------------------------------
我只是想另外说一句未必一定要此格式,只要是日期型就O了
DateTime result;
if (DateTime.tryparse(textbox1.text,out result))
{
    //result 就是日期型的值,以后想干嘛干嘛
}
else
{
    //警告:不是日期型
}

#3


求C#

#4


js判断

提交后给个DateTime,如果出错就说明输入有误

用选择时间的控件,只允许选,不允许输入

#5


2楼的 难道不行?  

#6


Convert.ToDateTime(TEXTBOX1.Text).ToString(yyyy-MM-dd);

#7



Public static bool IsDate(Object Expression)

{

  if(Expression!=null)

  {

if(Expression is DateTime)

{

  Return true;

}

if(Expression is string)

 {

   DateTime time1;

   Return DateTime.TryParse((string)Expression,out time1);

 }    

  }

  Return false;

    }


#8


 DateTime time;
                time = Convert.ToDateTime(txtTimeForm.Text);

                if (time.ToString("yyyy-MM-dd") != txtTimeForm.Text)
                {
                    ShowMessage("输入的日期格式不正确");

                    return;
                }
为什么不正确啊,求改正

#9



正确的验证代码:
            DateTime time;
            if (DateTime.TryParse(TextBox1.Text, out time))
            {

            }
            else
            {
                System.Windows.Forms.MessageBox.Show("格式不正确");
            }


你看你的代码:

定义一个time的变量,然后把txt的text通过convert.todatetime方法转成datetime类型,如果txt的text是string类型或者转变不成datetime,那么就会报错。
还有你的这个if判断,把time tostring成yyyy-mm-dd格式  != 如果操作数相等,则不等运算符 (!=) 返回 false,否则,返回 true。你这是什么逻辑?画蛇添足。

#10


利用正则表达式 
[\d]{4}-[\d]{1,2}-[\d]{1,2}

#11


建议是客户端和服务端都要进行判断

#12


引用 1 楼 nevermore_0923 的回复:
My97DatePicker 控件,

+

#13


http://download.csdn.net/detail/ljx09195117/3465298
我写的js验证
只要添加里面的js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="js/DataValidation.js" type="text/javascript"></script>

那么textbox只要这样就能验证Email
<asp:TextBox id="textbox1" runat="server" ValidDataForEmail = "default"></asp:TextBox>
就是在Textbox加一个 ValidDataForEmail = "default"属性就行

#14


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "1999-02-32";
            Boolean result= Regex.IsMatch(str, @"^[1-2]\d{3}-((0[1-9])|(1[0-2]))-(([0-2]?[1-9])|3[0-1])$");
            Console.Write(result);
        }
    }
}

太蛋疼了,日期正则写死人啊。
上面写的没办法区分每个月有多少天。
正则应用之——日期正则表达式

#15


try
{
  DateTime date=DateTime.ParseExact(TEXTBOX1.Text,   "yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture); 
  Response.Write("是yyyy-MM-dd格式")
}
catch
{
  Response.Write("不是yyyy-MM-dd格式")

}

#1


My97DatePicker 控件,

#2


用正则式判读,网上很多的。

--------------------------------------------------
我只是想另外说一句未必一定要此格式,只要是日期型就O了
DateTime result;
if (DateTime.tryparse(textbox1.text,out result))
{
    //result 就是日期型的值,以后想干嘛干嘛
}
else
{
    //警告:不是日期型
}

#3


求C#

#4


js判断

提交后给个DateTime,如果出错就说明输入有误

用选择时间的控件,只允许选,不允许输入

#5


2楼的 难道不行?  

#6


Convert.ToDateTime(TEXTBOX1.Text).ToString(yyyy-MM-dd);

#7



Public static bool IsDate(Object Expression)

{

  if(Expression!=null)

  {

if(Expression is DateTime)

{

  Return true;

}

if(Expression is string)

 {

   DateTime time1;

   Return DateTime.TryParse((string)Expression,out time1);

 }    

  }

  Return false;

    }


#8


 DateTime time;
                time = Convert.ToDateTime(txtTimeForm.Text);

                if (time.ToString("yyyy-MM-dd") != txtTimeForm.Text)
                {
                    ShowMessage("输入的日期格式不正确");

                    return;
                }
为什么不正确啊,求改正

#9



正确的验证代码:
            DateTime time;
            if (DateTime.TryParse(TextBox1.Text, out time))
            {

            }
            else
            {
                System.Windows.Forms.MessageBox.Show("格式不正确");
            }


你看你的代码:

定义一个time的变量,然后把txt的text通过convert.todatetime方法转成datetime类型,如果txt的text是string类型或者转变不成datetime,那么就会报错。
还有你的这个if判断,把time tostring成yyyy-mm-dd格式  != 如果操作数相等,则不等运算符 (!=) 返回 false,否则,返回 true。你这是什么逻辑?画蛇添足。

#10


利用正则表达式 
[\d]{4}-[\d]{1,2}-[\d]{1,2}

#11


建议是客户端和服务端都要进行判断

#12


引用 1 楼 nevermore_0923 的回复:
My97DatePicker 控件,

+

#13


http://download.csdn.net/detail/ljx09195117/3465298
我写的js验证
只要添加里面的js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="js/DataValidation.js" type="text/javascript"></script>

那么textbox只要这样就能验证Email
<asp:TextBox id="textbox1" runat="server" ValidDataForEmail = "default"></asp:TextBox>
就是在Textbox加一个 ValidDataForEmail = "default"属性就行

#14


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "1999-02-32";
            Boolean result= Regex.IsMatch(str, @"^[1-2]\d{3}-((0[1-9])|(1[0-2]))-(([0-2]?[1-9])|3[0-1])$");
            Console.Write(result);
        }
    }
}

太蛋疼了,日期正则写死人啊。
上面写的没办法区分每个月有多少天。
正则应用之——日期正则表达式

#15


try
{
  DateTime date=DateTime.ParseExact(TEXTBOX1.Text,   "yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture); 
  Response.Write("是yyyy-MM-dd格式")
}
catch
{
  Response.Write("不是yyyy-MM-dd格式")

}