我试图只获得一个DateTime
对象的时间。
假设我有这个对象:
Nullable<DateTime> data = new DateTime(2007,6,15,5 ,23,45);
我尝试使用:
data.Value.ToShortTimeString()
我收到:
5:23 AM
我希望能够只显示5:23
我怎样才能做到这一点?
您可以使用 “H”自定义格式说明符。
“H”自定义格式说明符将小时表示为从 0 到 23 的数字;也就是说,小时由一个从零开始的 24 小时制表示,该时钟从午夜开始计算小时数。单位数小时的格式不带前导零。
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
Console.WriteLine(data.Value.ToString("H:mm"));
输出将是;
5:23
这是一个DEMO
.
欲了解更多信息,请查看Custom Date and Time Format Strings
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
var timeofDay = data.Value.TimeOfDay; // 05:23:45
如果需要获取TimeSpan
类型,请使用 DateTime 类中名为 的属性TimeOfDay
。它只返回“时间”部分。
如果您需要获取该格式的字符串,则使用 TimeOfDay 是一种矫枉过正的做法,只需使用它ToString("hh:mm")
来格式化您的输出。如果您不想要类似的结果05:40
,请使用ToString("H:mm")
.
奇怪,对我来说效果很好,可能是视觉工作室中的设置?
你可以试试这个
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
Debug.Write(data.Value.Hour + ":" + data.Value.Minute);