如何从date时间只获得时间C#

假设我有价值6/22/2009 10:00:00 AM。 如何从这个date时间只得到10:00 am。

你有很多select:

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM"); dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits dt.ToString("H:mm"); // 7:00 // 24 hour clock dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock 

希望有所帮助!

🙂

有用的链接: DateTime.ToString()模式

DateTime ,您可以使用.TimeOfDay – 但是这会为您提供表示时间(10小时)的TimeSpan

C#中只有DateTimetypes,它包含date和时间部分。 如果您不关心DateTime的Date部分,请将其设置为默认值,如下所示:

 DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay) 

这样,即使Microsoft决定将基准date更改为1/1/0001以外,您也可以在所有版本的.NET中保持一致。

您可能需要查看DateTime.ToShortTimeString()方法。

此外, DateTime对象上还有许多其他方法和属性,可以帮助您以任何方式对date或时间进行格式化。 只要看看文档。

有不同的方法来做到这一点。 您可以使用DateTime.Now.ToLongTimeString() ,它只返回string格式的时间。

尝试这个:

 TimeSpan TodayTime = DateTime.Now.TimeOfDay; 

这对我有用。 当我不得不使用DateTime.Date来获取date部分时,我发现了它。

 var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM"); var time = wholeDate - wholeDate.Date; 

你可以使用下面的代码:

 DateTime dt = new DateTime(2009, 6, 22, 10, 0, 0); //Date 6/22/2009 10:00:00 AM string time = dt.ToString("hh:mm tt"); //Output: 10:00 AM time = dt.ToString("HH:mm tt"); //Output: 10:00 AM dt = new DateTime(2009, 6, 22, 22, 0, 0); //Date 6/22/2009 10:00:00 PM time = dt.ToString("hh:mm tt"); //Output: 10:00 PM time = dt.ToString("HH:mm tt"); //Output: 22:00 PM 

你可以简单地写

 string time = dateTimeObect.ToString("HH:mm"); 

您可以在很短的时间内使用ToString("T")ToString("t")

如果你想比较时间,而不是date,你可以有一个标准的比较date,或匹配的date,你正在使用,如…

 DateTime time = DateTime.Parse("6/22/2009 10:00AM"); DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM"); bool greater = (time > compare); 

这可能有更好的方法,但保持date匹配。