无法用逗号分隔解析 TimeSpan
Can't Parse TimeSpan with commas for separation
如何将字符串 "0, 0, 0, 5, 0"
(d, h, m, s, f) 发送到 TimeSpan
以便它可以解析它?
输入字符串应完全采用这种格式。
应该是这样的:
TimeSpan ts;
var tmp = TimeSpan.TryParseExact("1, 2, 3, 4, 5", "dd, hh, mm, ss, ff", null, out ts);
// fails, tmp = false, ts = 0:00:00:00
我不能使用FromSecond
、FromMinutes
等,因为它可以是"0, 15, 0, 0, 0"
或"1, 0, 0, 0, 0"
我可以这样做:
var data = ApplicationConfiguration.Instance
.GetAppConfigValue("SavingRewardConfigurationCachingPeriod") ?? "0, 0, 0, 5, 0";
var tmp0 = new TimeSpan(
data [0],
data [1],
data [2],
data [3],
data [4]);
但我想找到更好的方法。
您只需要转义字符串的 ,
部分 (as the documentation states),这是通过用单引号将它们括起来来实现的 ('
):
var tmp = TimeSpan.TryParseExact("1, 2, 3, 4, 5", "d', 'h', 'm', 's', 'f", null, out ts);
示例 fiddle:https://dotnetfiddle.net/M7GOWR
如何将字符串 "0, 0, 0, 5, 0"
(d, h, m, s, f) 发送到 TimeSpan
以便它可以解析它?
输入字符串应完全采用这种格式。
应该是这样的:
TimeSpan ts;
var tmp = TimeSpan.TryParseExact("1, 2, 3, 4, 5", "dd, hh, mm, ss, ff", null, out ts);
// fails, tmp = false, ts = 0:00:00:00
我不能使用FromSecond
、FromMinutes
等,因为它可以是"0, 15, 0, 0, 0"
或"1, 0, 0, 0, 0"
我可以这样做:
var data = ApplicationConfiguration.Instance
.GetAppConfigValue("SavingRewardConfigurationCachingPeriod") ?? "0, 0, 0, 5, 0";
var tmp0 = new TimeSpan(
data [0],
data [1],
data [2],
data [3],
data [4]);
但我想找到更好的方法。
您只需要转义字符串的 ,
部分 (as the documentation states),这是通过用单引号将它们括起来来实现的 ('
):
var tmp = TimeSpan.TryParseExact("1, 2, 3, 4, 5", "d', 'h', 'm', 's', 'f", null, out ts);
示例 fiddle:https://dotnetfiddle.net/M7GOWR