我正在尝试解析一个可以为空的日期时间,该日期时间包含一个日期和一个字符串。我希望能够将日期时间和时间字符串放在一起来解析日期时间。但时间和日期可能是不一致的格式。这是我想出来的,但它打破了某些格式:
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,但格式可能不同,我们在这里谈论两个不同的值吗?