C# 将24小时字符串值转换为时间跨度

C# 将24小时字符串值转换为时间跨度,c#,timespan,C#,Timespan,我正在从excel文件中读取数据。用户可以使用以下格式之一指定时间: 1600 16:00 在后一种情况下,我可以轻松地将其转换为时间跨度。如何将第一种格式转换为timespan?有没有比操纵字符串转换为后者更简单的方法呢?使用 TimeSpan span = TimeSpan.ParseExact("1600", new string[] {"hhmm", @"hh\:mm"}, CultureInfo.InvariantCulture); 我不知道在被问到问题几秒钟后,今天在C#tag

我正在从excel文件中读取数据。用户可以使用以下格式之一指定时间:

  • 1600
  • 16:00
在后一种情况下,我可以轻松地将其转换为时间跨度。如何将第一种格式转换为timespan?有没有比操纵字符串转换为后者更简单的方法呢?

使用

TimeSpan span = TimeSpan.ParseExact("1600", new string[] {"hhmm", @"hh\:mm"}, CultureInfo.InvariantCulture);

我不知道在被问到问题几秒钟后,今天在C#tag上发放的选票是怎么回事,但你尝试了什么?例如,您可以为TryParseExact指定多种格式。
TimeSpan。(尝试)ParseExact(输入,新字符串[]{“hhmm”,“hh:mm”},CultureInfo.InvariantCulture)
这不支持两种格式。@CodeCaster已修复。虽然他的问题只是关于解析第一个字符串…因为他们已经知道如何解析第二个字符串。如果他们使用了您以前的代码,他们必须解析两次,一次用于任何一种格式。无论如何,您现在得到了与重复问题相同的答案。
TimeSpan.ParseExact(“16:00”,新字符串[]{“hhmm”,“hh:mm”},CultureInfo.InvariantCulture)将引发异常