Подтвердить что ты не робот

TimeSpan.Parse формат времени hhmmss

в С# я есть время в формате hhmmss, например 124510, за 12:45:10, и мне нужно знать TotalSeconds. Я использовал TimeSpan.Parse( "12:45:10" ). ToTalSeconds, но он не принимает формат hhmmss. Любой хороший способ конвертировать это?

4b9b3361

Ответ 1

Это может помочь

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();
        }
    }
}

Обратите внимание, что это не будет обрабатывать 24HR раз, чтобы анализировать время в формате 24HR, вы должны использовать шаблон HHmmss.

Ответ 2

Разделите строку на значение DateTime, а затем вычтите значение Date, чтобы получить время как TimeSpan:

DateTime t = DateTime.ParseExact("124510", "HHmmss", CultureInfo.InvariantCulture);
TimeSpan time = t - t.Date;

Ответ 3

Вы должны выбрать формат времени приема и преобразовать его в любой согласованный формат.

Затем вы можете использовать следующий код:

Формат: 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

Формат: 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

В случае несоответствия формату FormatException будет выведено с сообщением: " Строка не была признана допустимым DateTime."

Ответ 5

Если вы можете гарантировать, что строка всегда будет hhmmss, вы можете сделать что-то вроде:

TimeSpan.Parse(
    timeString.SubString(0, 2) + ":" + 
    timeString.Substring(2, 2) + ":" + 
    timeString.Substring(4, 2)))