只获取日期时间对象的时间

本文关键字:时间 对象 取日期 获取 | 更新日期: 2023-09-27 18:09:06

我试图只获取DateTime对象的时间。

假设我有一个对象:

 Nullable<DateTime> data = new DateTime(2007,6,15,5 ,23,45);

我尝试使用:

data.Value.ToShortTimeString()

我收到了:

5:23 AM

我希望能够只显示5:23

我该怎么做?

只获取日期时间对象的时间

您可以使用具有适当格式字符串的ToString方法:

var time = date.ToString("H:mm");

您可以使用"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

如果需要获取TimeSpan类型,请使用DateTime类中名为TimeOfDay的属性。它只返回"时间"部分。

如果您需要获得该格式的字符串,那么使用TimeOfDay是一种过度处理,只需使用ToString("hh:mm")来格式化输出即可。如果不希望得到类似05:40的结果,请使用ToString("H:mm")

        Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
        var timeofDay   = data.Value.TimeOfDay; // 05:23:45
var time = date.ToString("H:mm");

这里的H表示24小时的时间。即0-23

查看更多格式自定义日期和时间格式字符串

奇怪,它对我来说很好,也许它是visual studio中的一个设置?

你可以试试这个

Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
Debug.Write(data.Value.Hour + ":" + data.Value.Minute);