存储当前时间而不是毫秒组件

时间:2011-02-09 20:52:26

标签: c# datetime

我有一个timepan对象,只需要持有时间,没有日期。我会用

DateTime.Now.TimeOfDay

但问题是它以格式

给出了时间
15:51:51.7368329

我不想要毫秒组件。我该如何修剪它?

7 个答案:

答案 0 :(得分:11)

您可以使用DateTime.Now.Hour/Minute/Second属性,也可以使用DateTime.Now.ToString("HH:mm:ss")

有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

答案 1 :(得分:8)

我相信这就是你可能会追求的目标:

TimeSpan timeNow = DateTime.Now.TimeOfDay;
TimeSpan trimmedTimeNow = new TimeSpan(timeNow.Hours, timeNow.Minutes, timeNow.Seconds);

答案 2 :(得分:6)

简单地减去毫秒部分:

DateTime myTime = DateTime.Now.TimeOfDay;
myTime = myTime.AddMilliseconds(-myTime.Millisecond);

可以用更少的代码完成,而无需先分配给myTime

DateTime myTime = DateTime.Now.TimeOfDay.AddMilliseconds(
  -DateTime.Now.TimeOfDay.Millisecond);

虽然有点优雅,但这是一个坏主意。当访问TimeOfDay两次时,它有可能在第二次访问之前已经过了另一个毫秒。在这种情况下,结果不会是零毫秒。

答案 3 :(得分:4)

如果问题出现了,您可以这样做:

DateTime.Now.ToString("HH:mm:ss")

答案 4 :(得分:1)

  1. 向用户显示时,您可以指定所需的格式。这是一个很好的教程:
  2. http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

    1. 您可以创建新的DateTime对象,仅传递给构造函数的小时,分​​钟,秒(用于保存。)

答案 5 :(得分:1)

您可以使用此功能检查适合您的格式:

DateTime.Now.GetDateTimeFormats();

这将为您提供所有格式:

  • "14/05/2011"
  • "14/05/11"
  • "14.05.11"
  • "14-05-11"
  • "2011-05-14"

答案 6 :(得分:0)

你可以这样做 -

DateTime.Parse(
                DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"),
                System.Globalization.CultureInfo.CurrentCulture
              );

为我工作:)。