我有一个timepan对象,只需要持有时间,没有日期。我会用
DateTime.Now.TimeOfDay
但问题是它以格式
给出了时间15:51:51.7368329
我不想要毫秒组件。我该如何修剪它?
答案 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)
http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
答案 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
);
为我工作:)。