如何将一串数字转换为24次

时间:2014-10-03 17:05:49

标签: c# datetime

如何将一串数字转换为24次

字符串示例类似于" 0800"或" 1200"或" 2400"

我希望将其解析为时间数据类型(但没有日期),以便我可以相互比较2次。我将它们解析为int数字,但随后它会修剪左边的零,例如" 0800"

3 个答案:

答案 0 :(得分:5)

var ts  = TimeSpan.ParseExact("1500", "hhmm",null);

你可以比较它们,对于前

var ts1 = TimeSpan.ParseExact("1500", "hhmm", null);
var ts2 = TimeSpan.ParseExact("2000", "hhmm", null);
var mins = ts2.Subtract(ts1).TotalMinutes;

答案 1 :(得分:3)

如果您希望结果为DateTime对象,请查看DateTime.ParseExact方法:

DateTime.ParseExact(dateString, "HHmm", CultureInfo.InvariantCulture);

答案 2 :(得分:2)

由于您不想要日期部分,TimeSpan是您最好的选择。

<强> CODE:

var time1 = "0800";
var time2 = "1200";
var time3 = "2359"; // 2400 is not a valid time


var ts1 = TimeSpan.ParseExact(time1, "hhmm", CultureInfo.InvariantCulture);
var ts2 = TimeSpan.ParseExact(time2, "hhmm", CultureInfo.InvariantCulture);
var ts3 = TimeSpan.ParseExact(time3, "hhmm", CultureInfo.InvariantCulture);

Console.WriteLine(ts1);
Console.WriteLine(ts2);
Console.WriteLine(ts3);

// Calculating time difference.
var tsDiff = ts1.Subtract(ts2);

Console.WriteLine(tsDiff);

<强>输出:

08:00:00
12:00:00
23:59:00
-04:00:00