c#将字符串转换为日期时间

时间:2011-09-13 15:11:47

标签: c# datetime

我有这样的字符串“24:00:00”,我想把它转换成时间。我尝试转换和DateTime.Parse,但似乎它也需要一个日期。有没有办法让我有时间,或者我是否也需要约会?

6 个答案:

答案 0 :(得分:15)

如果您只对时间组件感兴趣,请考虑使用TimeSpan而不是完整的DateTime

var time = TimeSpan.Parse("23:59:59");

答案 1 :(得分:3)

我不确定“24:00:00”是否有效。如何,你不应该指定日期,你可以做...

DateTime time = DateTime.ParseExact("23:59:59", "HH:mm:ss", null);

如果您的时间实际上是一天中的某个时间,那么我建议您坚持使用DateTime。如果你实际上使用了一段时间(即可能超过23:59:59)那么你可以使用TimeSpan ...

TimeSpan time = TimeSpan.ParseExact("23:59:59", "HH:mm:ss", null);

不要忘记,如果您不确定输入是否有效,两者都有TryParseExact版本

答案 2 :(得分:2)

您可以使用DateTimeFormatInfo格式化日期时间。

string strDate = "23:10:00";
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.ShortTimePattern = "hh:mm:ss";
dtfi.TimeSeparator = ":";
DateTime objDate = Convert.ToDateTime(strDate, dtfi);
Console.WriteLine(objDate.TimeOfDay.ToString());

答案 3 :(得分:1)

我认为你需要TimeSpan.Parse吗?

答案 4 :(得分:0)

答案 5 :(得分:0)

怎么样

var time = new DateTime.Today;
var str = "24:00:00";
var split = str.split(":");

time.AddHours(Convert.ToInt32(split[0]));
time.AddMinutes(Convert.ToInt32(split[1]));
time.AddSeconds(Convert.ToInt32(split[2]));

希望这有帮助。