TimeSpan.Parse时间格式hhmmss

Jul*_*iel 14 c# timespan

在c#我有时间格式hhmmss喜欢124510 12:45:10我需要知道TotalSeconds.我使用了TimeSpan.Parse("12:45:10").ToTalSeconds但它不采用格式hhmmss.转换它的任何好方法?

小智 24

这可能有所帮助

using System;
using System.Globalization;

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime d = DateTime.ParseExact("124510", "hhmmss", CultureInfo.InvariantCulture);

            Console.WriteLine("Total Seconds: " + d.TimeOfDay.TotalSeconds);

            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这将不会处理24HR次,要以24HR格式解析时间,您应该使用模式HHmmss.

  • 那个24小时的时间评论可能只是让我在墙上撞了一天.谢谢! (2认同)

Guf*_*ffa 10

将字符串解析为DateTime值,然后减去它的Date值以获得TimeSpan的时间:

DateTime t = DateTime.ParseExact("124510", "HHmmss", CultureInfo.InvariantCulture);
TimeSpan time = t - t.Date;
Run Code Online (Sandbox Code Playgroud)

  • DateTime.TimeOfDay直接为您提供TimeSpan. (8认同)
  • 您应该使用TimeOfDay而不是t - t.Date (7认同)

Chi*_*rag 5

您必须确定接收时间格式并将其转换为任何一致的格式。

然后,您可以使用以下代码:

格式:hh:mm:ss(12小时格式)

DateTime dt = DateTime.ParseExact("10:45:10", "hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
double totalSeconds = dt.TimeOfDay.TotalSeconds;    // Output: 38170.0
Run Code Online (Sandbox Code Playgroud)

格式:HH:mm:ss(24小时格式)

DateTime dt = DateTime.ParseExact("22:45:10", "HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
double totalSeconds = dt.TimeOfDay.TotalSeconds;    // Output: 81910.0
Run Code Online (Sandbox Code Playgroud)

如果格式不匹配,则会引发FormatException并显示以下消息:“ 未将字符串识别为有效的DateTime。