我有一个简单的arrayData字符串,我正在尝试运行TimeSpan.ParseExact,我收到的格式错误无效。对于我的生活,我无法弄清楚我出了什么问题,这让我感到疯狂
string arrayData = "00:02:02.4000000";
string[] formats = new string[] {
@"s\.f",
@"ss\.f",
@"ss\.ff",
@"m\:ss\.f",
@"m\:ss\.ff",
@"mm\:ss\.ff",
@"hh\:mm\:ss\.ff",
@"dd\.hh\:mm\:ss"
};
CultureInfo culture = new CultureInfo("en-US");
TimeSpan _timeSpan = TimeSpan.ParseExact(arrayData, formats, culture.NumberFormat);
答案 0 :(得分:2)
使用ParseExact
,您需要指定确切的格式。在您的情况下,您需要允许七个小数秒,而不仅仅是两个。
string arrayData = "00:02:02.4000000";
string[] formats = new string[] {
@"s\.f",
@"ss\.f",
@"ss\.ff",
/* ... */
@"hh\:mm\:ss\.fffffff" // <- missing format
};
TimeSpan _timeSpan = TimeSpan.ParseExact(arrayData, formats, CultureInfo.InvariantCulture);