如何从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匹配。