Csharp/C#教程:如何将字符串“07:35”(HH:MM)转换为TimeSpan分享


如何将字符串“07:35”(HH:MM)转换为TimeSpan

我想知道是否有办法将24小时时间格式的字符串转换为TimeSpan。

现在我有一个“旧时尚风格”:

string stringTime = "07:35"; string[] values = stringTime.Split(':'); TimeSpan ts = new TimeSpan(values[0], values[1], 0); 

虽然这是正确的,但这将有效:

 TimeSpan time = TimeSpan.Parse("07:35"); 

如果您正在使用它进行validation……

 TimeSpan time; if (!TimeSpan.TryParse("07:35", out time)) { // handle validation error } 

考虑到TimeSpan主要用于处理已用时间,而不是时间。 它将接受超过24小时的值,并且也将接受负值。

如果您需要validation输入字符串是否为有效的时间(> = 00:00和<24:00),那么您应该考虑这一点:

 DateTime dt; if (!DateTime.TryParseExact("07:35", "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) { // handle validation error } TimeSpan time = dt.TimeOfDay; 

作为额外的好处,只要您提供适当的格式字符串,例如"h:mm tt" ,这也将解析包含AM或PM的12小时格式化时间。

使用TimeSpan.Parse转换字符串

https://msdn.microsoft.com/en-us/library/system.timespan.parse(v=vs.110).aspx

尝试

  var ts = TimeSpan.Parse(stringTime); 

有了更新的.NET,你也有

  TimeSpan ts; if(!TimeSpan.TryParse(stringTime, out ts)){ // throw exception or whatnot } // ts now has a valid format 

这是在.NET中解析字符串的一般习惯用法,第一个版本通过抛出FormatException来处理错误的字符串,而后者让布尔的TryParse直接为您提供信息。

您可以使用以下代码转换时间。

 TimeSpan _time = TimeSpan.Parse("07:35"); 

但是如果你想获得当天的当前时间,你可以使用以下代码:

 TimeSpan _CurrentTime = DateTime.Now.TimeOfDay; 

结果将是:

 03:54:35.7763461 

一个对象可以显示小时,分钟,秒,蜱等。

上述就是C#学习教程:如何将字符串“07:35”(HH:MM)转换为TimeSpan分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1024408.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐