c00*_*0fd 5 .net c# asp.net datetime
比方说,我有两个字符串,其中包含针对任意文化的任意用户提供格式的日期/时间:
string str1 = "6/19/2013";
string str2 = "6/19/2013 1 am";
Run Code Online (Sandbox Code Playgroud)
我可以通过执行以下操作来解析它们:
DateTime dt1 = DateTime.Parse(str1);
DateTime dt2 = DateTime.Parse(str2);
Run Code Online (Sandbox Code Playgroud)
但是我怎么知道时间部分是否存在并解析为 DateTime 对象?
bra*_*uar -1
如果解析的字符串中未指定时间,则对象TimeOfDay的属性DateTime将设置为午夜 (00:00:00)。然后您可以检查是否属于这种情况,如下所示:
if (dt1.TimeOfDay.Equals(new TimeSpan(0,0,0))) {
//do something
} else {
//do something else
}
Run Code Online (Sandbox Code Playgroud)
编辑:另一种方法可能是将字符串的日期和时间部分分开。这是假设使用破折号、逗号或除空格之外的任何内容传递某种类型的数字日期格式。
string[] dateString = str1.Split(' ');
string[] date2String = str2.Split(' ');
Run Code Online (Sandbox Code Playgroud)
现在您将拥有一个可以轻松用于检查特殊值的字符串数组。dateString[0]例如,应包含您的整个日期。dateString[1]以及超越将具有任何时间格式,并且可以重新组合并解析为TimeSpan对象。显然,如果数组中只有一个实体,那么它们任何时候都不会进入。