解析 TimeSpan 1:00 和 01:00
Parse TimeSpan 1:00 and 01:00
我想解析一串小时数,例如:
16:40、01:00、12:00、1:00、4:90
我的解析方式:
txtManDezStunden.Text = TimeSpan.ParseExact(txtManStunden.Text, "hh':'mm", null).TotalHours.ToString("0.00");
如果 txtManStunden.Text 的输入是 01:00,一切正常
当输入为 1:00 时它“失败”,这是我想捕捉的行为。
有没有办法在 Operator 使用“01:00, 001:00, 1:00”作为输入时仍然解析
感谢您的任何建议
您可以做几件事,但这取决于您是否希望小时数部分可以是时间跨度中的总小时数(例如,TimeSpan.TotalHours
property) and you could get an input of 123:00
to parse. Assuming that's not the case, then you can use the overload of TimeSpan.ParseExact
采用多个格式字符串,例如示例:
var input = "001:00";
var formats = new [] { "h':'mm", "'0'h':'mm" };
var timeSpan = TimeSpan.ParseExact(input, formats, null);
但是,如果您确实需要解析 123:00
,那么您将需要手动解析字符串。幸运的是,通过拆分字符串来做到这一点相当简单。
var input = "001:00";
var parts = input.Split(':');
var hours = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var timeSpan = new TimeSpan(hours, minutes, 0);
来自@phuzi 的解决方案有效
我现在使用它尝试解析的多种格式,现在就像一个魅力。
TimeSpan.ParseExact(txtManStunden.Text, new[] { "hh':'mm", "hhh':'mm", "h':'mm", "h", "hh" }, null).TotalHours.ToString("0.00");
我现在无法解析大于 24 的小时数,有什么办法可以在不破坏当前格式的情况下解决这个问题?
我想解析一串小时数,例如: 16:40、01:00、12:00、1:00、4:90
我的解析方式:
txtManDezStunden.Text = TimeSpan.ParseExact(txtManStunden.Text, "hh':'mm", null).TotalHours.ToString("0.00");
如果 txtManStunden.Text 的输入是 01:00,一切正常 当输入为 1:00 时它“失败”,这是我想捕捉的行为。
有没有办法在 Operator 使用“01:00, 001:00, 1:00”作为输入时仍然解析
感谢您的任何建议
您可以做几件事,但这取决于您是否希望小时数部分可以是时间跨度中的总小时数(例如,TimeSpan.TotalHours
property) and you could get an input of 123:00
to parse. Assuming that's not the case, then you can use the overload of TimeSpan.ParseExact
采用多个格式字符串,例如示例:
var input = "001:00";
var formats = new [] { "h':'mm", "'0'h':'mm" };
var timeSpan = TimeSpan.ParseExact(input, formats, null);
但是,如果您确实需要解析 123:00
,那么您将需要手动解析字符串。幸运的是,通过拆分字符串来做到这一点相当简单。
var input = "001:00";
var parts = input.Split(':');
var hours = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var timeSpan = new TimeSpan(hours, minutes, 0);
来自@phuzi 的解决方案有效
我现在使用它尝试解析的多种格式,现在就像一个魅力。
TimeSpan.ParseExact(txtManStunden.Text, new[] { "hh':'mm", "hhh':'mm", "h':'mm", "h", "hh" }, null).TotalHours.ToString("0.00");
我现在无法解析大于 24 的小时数,有什么办法可以在不破坏当前格式的情况下解决这个问题?