将字符串格式的时间转换为时间格式

时间:2017-04-28 17:56:02

标签: c#

我有时间"00.05.415"(mm:ss.000),格式为string

我想将其转换为TIME格式,我可以添加多次,例如"00.05.415"+"00.06.415"+"00.07.415",以便获得一次加时间。

4 个答案:

答案 0 :(得分:3)

您需要使用TimeSpan.ParseExact,以便指定时间格式,然后您可以将时间跨度添加到一起:

public static void Main(string[] args)
{
    TimeSpan span1 = Convert("00.05.415");
    TimeSpan span2 = Convert("00.07.415");

    TimeSpan result = span1 + span2;

    Console.WriteLine(result);

    Console.ReadKey();
}

public static TimeSpan Convert(string span)
{
    return TimeSpan.ParseExact(span, @"mm\.ss\.fff", CultureInfo.InvariantCulture);
}

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

答案 1 :(得分:0)

如果您知道格式预定义为mm:ss.000,则可以执行以下操作来解析TimeSpan:

var strings = "00:05.415".Split(new []{'.', ':'}, StringSplitOptions.RemoveEmptyEntries);
var minutes = int.Parse(strings[0]);
var seconds = int.Parse(strings[1]);
var milliseconds = int.Parse(strings[2]);
var time = new TimeSpan(0, 0, minutes, seconds, milliseconds);

然后你可以将TimeSpan加在一起。

答案 2 :(得分:0)

您想要查看Avitus拥有的链接here

我不得不问你为什么要把它们加在一起。 You can't really 'add' times together

一种可能的选择是将每个转换为毫秒,然后格式化结果值。

5秒+3.2秒可能是:

5000 + 3200 = 8200. 

然后您使用系统。 TimeSpan 将其转换为天,小时,分钟......等等

感谢修正Matt

答案 3 :(得分:0)

如果未预先定义格式,请使用此4KB脚本https://github.com/alekspetrov/time-input-js

它将字符串/数字转换为时间格式HH:MM:SS

示例

00:00:00 -> 00:00:00
12:01 -> 12:01:00
12 -> 12:00:00
25 -> 00:00:00
12:60:60 -> 12:00:00
1dg46 -> 14:06
["notatime"] -> 00:00:00 + console warn