我收到整数用户输入的小时,分钟和秒.
现在,当我尝试使用DateTime.Parse和DateTime.TryParse AND Convert.ToDateTime时,它们都返回正确的小时/分钟/秒; 但是,它也会返回日期(年,月,日等).
string a = this.hours.ToString() + ":" + this.minutes.ToString() + ":" + this.seconds.ToString();
this.alarm = new DateTime();
this.alarm = DateTime.ParseExact(a, "H:m:s", null);
Run Code Online (Sandbox Code Playgroud)
假设小时是05,小时是21秒,秒是50."a"将是05:21:50.我希望"闹钟"是05:21:50.但是,它实际上是(可能):
11/23/10 05:21:50
Run Code Online (Sandbox Code Playgroud)
有没有办法让它正常工作?提前致谢.
Jus*_*ner 11
DateTime实例将始终包含一些日期信息.
如果你只想表示一天中的时间,你应该使用TimeSpan(TimeSpan表示自午夜以来的跨度......或者一天中的时间.你还会注意到DateTime.TimeOfDay属性做同样的事情).
代码类似:
var timeOfDay = TimeSpan.ParseExact(a, "H:m:s", null);
Run Code Online (Sandbox Code Playgroud)
DateTime始终包含时间和日期.如果您想要一个只节省时间的类,您可以创建自己的类struct来处理它.但在一般情况下,没有必要,因为您可以简单地忽略DateTime结构的日期部分,例如:
string a = "05:21:50";
DateTime alarm = new DateTime();
alarm = DateTime.ParseExact(a, "H:m:s", null);
Console.WriteLine(alarm.ToString("H:m:s"));
Console.WriteLine(alarm.Hour);
Console.WriteLine(alarm.Minute);
Console.WriteLine(alarm.Second);
Run Code Online (Sandbox Code Playgroud)