在 C# 中
DateTime dateAndTime = DateTime.Now;
给出当前日期和时间。我只需要当前时间。如果我使用字符串,则可能是:
string time=DateTime.Now.ToString("hh:mm:ss");
是否有可能只获得时间部分DateTime
而不经过 a string
?
在 C# 中
DateTime dateAndTime = DateTime.Now;
给出当前日期和时间。我只需要当前时间。如果我使用字符串,则可能是:
string time=DateTime.Now.ToString("hh:mm:ss");
是否有可能只获得时间部分DateTime
而不经过 a string
?
没有开箱即用的类型只能保持一段时间。您可以使用TimeSpan
,甚至 .NET 框架也可以在某些部分使用(例如DateTime.TimeOfDay
),但我认为这TimeSpan
确实有不同的目的。
TimeSpan
,引用 MSDN,只是“测量时间间隔”。这很容易超过组成一天的小时、分钟、秒等(即总共 24 小时)。实际上,该TimeSpan
结构提供了这一点,例如,具有类似的属性Days
。
因此,我认为TimeSpan
不太适合表示一天中的时间(我假设您在说“当前时间”时是指您的意思)。
这给我们带来了另一个问题。“当前时间”究竟是什么?正如我所说,我假设您的意思是“当前时间”中的当前时间。但是当前时间也可能意味着自过去某个特定时间点以来的当前(经过)时间。
诚然,所有这些都是理论上的,甚至是夸夸其谈的,并不能真正帮助你。
我只会使用DateTime
. 在您真正关心“时间”值的地方,只需使用时间部分(就像您在示例中所展示的那样,您所知道的ToString
)。虽然,根据您需要的时间,您可能会求助于DateTime.TimeOfDay
属性,而不是简单地将其格式化为字符串(当然,除非这是您需要的)。
最后,您还可以求助于第三方库,如Node Time,它们只提供时间类型(如LocalTime
)。
string time = string.Format("{0:hh-mm-ss-tt}", DateTime.Now);