в C# у меня есть время в формате hhmmss вроде 124510 за 12:45:10, и мне нужно знать TotalSeconds. Я использовал TimeSpan.Parse («12:45:10»). ToTalSeconds, но он не принимает формат hhmmss. Любой хороший способ конвертировать это?TimeSpan.Parse формат времени hhmmss
ответ
Это может помочь
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();
}
}
}
Примечание это не будет обрабатывать 24ч раз, чтобы время разбора в формате 24HR, вы должны использовать шаблон HHmmss.
Если вы можете гарантировать, что строка всегда будет ччммсс, вы могли бы сделать что-то вроде:
TimeSpan.Parse(
timeString.SubString(0, 2) + ":" +
timeString.Substring(2, 2) + ":" +
timeString.Substring(4, 2)))
я не могу, что гарантия строка всегда будет ччммсс мне нужно поставить формат через .settings файл –
Разобрать строку в значение DateTime, а затем вычесть это дата значение, чтобы получить время как TimeSpan:
DateTime t = DateTime.ParseExact("124510", "HHmmss", CultureInfo.InvariantCulture);
TimeSpan time = t - t.Date;
Вам нужно избегать двоеточий (или других разделителей), по какой причине он не может справиться с ними, я не знаю. См. Custom TimeSpan Format Strings на MSDN, а принятый ответ от Jon, до Why does TimeSpan.ParseExact not work.
Вы должны определить формат времени приема и преобразовать его в любой согласованный формат.
Затем, вы можете использовать следующий код:
Формат: чч: мм: сс (12 часов Формат)
DateTime dt = DateTime.ParseExact("10:45:10", "hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
double totalSeconds = dt.TimeOfDay.TotalSeconds; // Output: 38170.0
Формат: чч: мм: сс (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. . "
Я стараюсь, и он работает –
Тот комментарий 24HR Time, возможно, только что спас меня день ударился головой о стену. –