C# 检查保存日期的字符串是否包含时间

C# 检查保存日期的字符串是否包含时间,c#,.net,C#,.net,如何检查保存日期值的C#字符串变量是否包含时间部分 string date="2013-04-03 10:15:00"; string date="2013-04-03"; 假设您总是使用相同的格式,您可以编辑字符串并检查返回数组的长度 if(date.Split(' ').Length > 1) { //String contains date and time } 例如: if (date.Contains(":")) { } 我想一个更重要的问题是:为什么你需要知道?是这

如何检查保存日期值的C#字符串变量是否包含时间部分

string date="2013-04-03 10:15:00";
string date="2013-04-03";

假设您总是使用相同的格式,您可以编辑字符串并检查返回数组的
长度

if(date.Split(' ').Length > 1)
{
   //String contains date and time
}
例如:

if (date.Contains(":"))
{
}

我想一个更重要的问题是:为什么你需要知道?是这样您可以为时间添加默认值,还是时间与您的问题无关?无论哪种方式,使用标准方法解析日期都应该符合要求:

例如:

bool IsDefaultTime(string parseTime)
{
    DateTime date;
    //parse the date and see if we have a time element
    if(DateTime.TryParse(parseTime, out date))
    {
        //returns true when the time is midnight.
        return date.TimeOfDay == TimeSpan.Zero;
    }
    throw new ArgumentException(string.Format("Value was not in recognized datetime     format: {0}", parseTime));
}
除此之外,如果您正在寻找有效的检查,并且可以确保日期始终采用上述格式(即MM dd yyyy),那么您可以只检查字符串的长度:

bool HasTimeElement(string parseTime)
{
   //Ignoring all validation concerns to be handled elsewhere.
   return parseTime.Length > 10;
}

最后一个也包含时间部分。现在是00:00(午夜),我认为你需要更具体地说明你想要实现的目标,以及价值观的来源。如果您可以依赖这些字符串的精确格式,并且不可能使用不同的区域日期/时间格式,那么可以使用简单的基于字符串的检查(甚至可以只检查长度是否为10),否则您将需要解析为DateTime并使用该格式进行检查(小时、分钟、秒、毫秒均等于0),因此
“:::”
是一个
DateTime
值吗?如果一个C#string变量包含一个日期值,OP会显示