解析可以具有不同格式的日期

时间:2017-01-11 09:24:05

标签: c# datetime

我正在尝试解析一个可以为空的日期时间,该日期时间包含一个日期和一个字符串。我希望能够将日期时间和时间字符串放在一起来解析日期时间。但时间和日期可能是不一致的格式。这是我想出来的,但它打破了某些格式:

private DateTime? ParseToDateTime(DateTime? dateTime, string time)
{
    if (dateTime.HasValue)
    {
        //Parse the time

        time = TimeToParse(time);
        if (TimeValid(time))
        {
            var inptTime = time.PadLeft(4, '0');
            var hrs = int.Parse(inptTime.Left(2));
            var mins = int.Parse(inptTime.Right(2)) + hrs * 60;
            return DateTime.SpecifyKind(dateTime.Value.Date.Add(TimeSpan.FromMinutes(mins)), DateTimeKind.Local);
        }
    }
    return null;
}

private string TimeToParse(string time)
{
    if (time.Contains("+"))
    {
        time = time.Substring(0, time.IndexOf("+", StringComparison.Ordinal));
    }
    return time;
}

private static bool TimeValid(string time) 
{ 
     if (string.IsNullOrEmpty(time)) return false; 
     if (time.Length < 4) return false; 
     if (time.Length > 4) return false; 
     return true; 
}

我也研究了tryparse,但格式可能不同,我们在这里谈论两个不同的值吗?

0 个答案:

没有答案