繁体   English   中英

在C#中将hh:mm:ss:fff转换为ss.fff

[英]convert hh:mm:ss:fff to ss.fff in C#

我有一个像00:00:01:347(hh:mm:ss:fff)这样的字符串,它以毫秒为单位表示时间。 我想将其转换为01.347(totalsecond.fff)。

我尝试下面的代码执行

string time = "00:00:01:347:789";
int index = time.LastIndexOf(":");
if (index > 0)
    time = time.Substring(0, index);
double seconds = TimeSpan.Parse(time).TotalSeconds;

但它在最后一行给出了例外。 如果有人可以帮助我,那就太好了。

您可以先使用ParseExact将字符串解析为DateTime ,然后使用TimeOfDay属性获取时间跨度。

    static void Main(string[] args)
    {
        string time = "00:00:01:347"; // I removed the microsecond for brevity
        DateTime dt = DateTime.ParseExact(time, "hh:mm:ss:fff", CultureInfo.InvariantCulture);

        Console.WriteLine(dt.TimeOfDay.TotalSeconds); // 01.347(totalsecond.fff)

        Console.ReadLine();
    }

编辑:如@Andrew所述,这是另一个解决方案。

TimeSpan ts = TimeSpan.ParseExact(time, "hh\\:mm\\:ss\\:fff", CultureInfo.InvariantCulture);
Console.WriteLine(ts.TotalSeconds); // 01.347

请注意,您必须转义分隔符以避免获取FormatException。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM