MSDN says:



我尝试了以下方法:

TimeSpan.ParseExact("-0700", @"\-hhmm", null, TimeSpanStyles.None)

但是,它返回07:00:00。并失败为“0700”。

如果我尝试:
TimeSpan.ParseExact("-0700", "hhmm", null, TimeSpanStyles.None)

它也失败了。
TimeSpan.ParseExact("0700", new string [] { "hhmm", @"\-hhmm" }, null, TimeSpanStyles.None)

对于“0700”和“-0700”均不会失败,但始终返回正数07:00:00。

应该如何使用?

最佳答案

似乎不支持此功能。在custom TimeSpan format strings页面上:



不过,这似乎确实很奇怪。 ck

如我的评论中所述,您可以为此使用Noda Time项目的 Duration parsing。仅在这种情况下过大,但是如果您在项目中还有其他日期/时间工作,它可能会很有用。

例如:

var pattern = DurationPattern.CreateWithInvariantCulture("-hhmm");
var timeSpan = pattern.Parse("-0700").Value.ToTimeSpan();

10-07 21:29