Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查Datetime是否具有特殊字符的更好方法_C#_Datetime - Fatal编程技术网

C# 检查Datetime是否具有特殊字符的更好方法

C# 检查Datetime是否具有特殊字符的更好方法,c#,datetime,C#,Datetime,my get方法中的一个参数是datetime,如下所示: http://localhost/accounts/?name=Junetest&uid=00000002&datetimechange=2015-04-12 15:14:20-0500 在我的控制器中,我转换日期时间 if (row["datetimechange"] != null){ var dtNewValue = Convert.ToDateTime(row["datetimechange"].

my get方法中的一个参数是datetime,如下所示:

 http://localhost/accounts/?name=Junetest&uid=00000002&datetimechange=2015-04-12 15:14:20-0500
在我的控制器中,我转换日期时间

 if (row["datetimechange"] != null){
     var dtNewValue = Convert.ToDateTime(row["datetimechange"].ToString());
    }
如果传递的值正确,则此操作有效。但是,如果我添加一些特殊字符

 http://localhost/accounts/?name=Junetest&uid=00000002&datetimechange=2015-      04-12 15:14:20-0500asfdsfsdfds
转换仍然不会引发任何异常,只有在实际get操作期间才会失败

是否有方法检查datetime是否没有特殊字符或额外字符,然后在转换期间而不是转换之后引发异常


我想到了使用正则表达式或tryParse。我的想法正确吗?请。让我知道是否有更干净的方法来处理此问题

最好尝试使用正则表达式进行过滤

if (row["datetimechange"] != null){
string temp=Convert.ToDateTime(row["datetimechange"].ToString());
MatchCollection mc1 = Regex.Matches(temp, @"[^a-zA-Z]");
foreach (Match m in mc)
                dtNewValue=dtNewValue+m.Value.ToString()
}
您可以添加更多筛选以引发异常。

您应该使用

使用指定的格式数组、区域性特定格式信息和样式,将日期和时间的指定字符串表示形式转换为其等效的日期时间。字符串表示形式的格式必须至少与指定格式中的一种完全匹配。该方法返回一个值,该值指示转换是否成功

当此方法返回时,如果转换成功,则包含与s中包含的日期和时间等效的DateTime值,如果转换失败,则包含MinValue。如果s或formats为null,s或formats元素为空字符串,或者s的格式与formats中至少一个格式模式指定的格式不完全一致,则转换失败

var x=DateTime.TryParseExact(日期字符串、格式、,
新文化信息(“美国”),
DateTimeStyles。无,

过期价值)

Eh,
DateTime.TryParseExact()
?你是说有时即使输入错误,转换成功,你也要抛出异常?Kazem,是的,即使最后有额外的字符,转换成功,但我想抛出异常。最好的方法是正则表达式。最丑陋的方法是检查字符串是否包含双空格,并且字符串的最后一个字符不是数字!Dmitry,我试过DateTime.Tryparse()。还是一样的行为。它解析成功,