6

我有一个 HH:MM:SS 的输入字符串,例如 15:43:13,

现在我想将其转换为日期时间,但只保留小时/时间而不保留日期等

是否可以?

例如

string userInput = 15:43:13;
DateTime userInputTime = Convert.ToDateTime(userInput);

会给我完整的日期,包括年份等,有没有办法将其转换为 HH:MM:SS 而无需修剪/子字符串?

谢谢

4

3 回答 3

15

正如其他人所说,这是一个TimeSpan.

你可以通过这样做得到一个日期时间

string userInput = "15:43:13";
var time = TimeSpan.Parse(userInput);
var dateTime = DateTime.Today.Add(time);
于 2013-05-13T15:19:22.980 回答
2

要获得时间跨度,您可以使用:

TimeSpan.Parse("15:43:13")

但是你应该问自己为什么要这样做,因为有一些相当重要的问题。例如,当 2013 年 11 月 3 日星期日,夏令时即将结束时,您想要哪个凌晨 2:33?其中有两个。

于 2013-05-13T15:29:18.480 回答
0

如果您不需要额外的数据(年份等),请使用TimeSpan 您可以从用户输入转换为 TimeSpan 使用Timespan.Parse

例如: TimeSpan ts = TimeSpan.Parse("6:12"); //06:12:00

在此处阅读更多信息:http: //msdn.microsoft.com/en-us/library/se73z7b9.aspx

于 2013-05-13T15:27:46.047 回答