C#では、12:45:10の124510のようなhhmmss形式の時間があり、TotalSecondsを知る必要があります。TimeSpan.Parse("12:45:10").ToTalSeconds を使用しましたが、hhmmss の形式は取りません。これを変換する良い方法はありますか?
49204 次
6 に答える
33
これは役立つかもしれません
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 時間の時間を処理しないことに注意してください。時間を 24 時間形式で解析するには、パターンHHmmssを使用する必要があります。
于 2009-12-02T16:13:28.747 に答える
12
文字列をDateTime値に解析し、そのDate値を減算して、TimeSpanとして時刻を取得します。
DateTime t = DateTime.ParseExact("124510", "HHmmss", CultureInfo.InvariantCulture);
TimeSpan time = t - t.Date;
于 2009-12-02T16:02:18.260 に答える
6
受信時刻の形式を決定し、それを一貫した形式に変換する必要があります。
次に、次のコードを使用できます。
形式: 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
フォーマットが一致しない場合、「文字列は有効な DateTime として認識されませんでした。」というメッセージとともに FormatException がスローされます。
于 2014-12-18T05:59:23.173 に答える
0
文字列が常にhhmmssになることを保証できる場合は、次のようにすることができます。
TimeSpan.Parse(
timeString.SubString(0, 2) + ":" +
timeString.Substring(2, 2) + ":" +
timeString.Substring(4, 2)))
于 2009-12-02T16:01:39.977 に答える