我有一個時間跨度對象,需要只保存時間,沒有日期。我會用存儲沒有毫秒的當前時間組件
DateTime.Now.TimeOfDay
但問題是它給時間格式
15:51:51.7368329
我不想毫秒組件。我如何修剪它?
我有一個時間跨度對象,需要只保存時間,沒有日期。我會用存儲沒有毫秒的當前時間組件
DateTime.Now.TimeOfDay
但問題是它給時間格式
15:51:51.7368329
我不想毫秒組件。我如何修剪它?
您可以使用DateTime.Now.Hour/Minute/Second
屬性,也可以使用DateTime.Now.ToString("HH:mm:ss")
。
這裏指的更多信息:http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx
「h:mm:ss」不會給出所需的結果。 `h`表示非軍事小時的1位數表示,'mm`表示當前月份的2位數表示。因此,這將提供3:02:51提供的示例,而不是15:51:51,如要求。 – 2011-02-09 21:08:45
我想你應該看看這個鏈接http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – 2011-02-09 21:12:07
http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
如果問題是顯示它,你可以這樣做:
DateTime.Now.ToString("HH:mm:ss")
簡單地減去毫秒部分:
DateTime myTime = DateTime.Now.TimeOfDay;
myTime = myTime.AddMilliseconds(-myTime.Millisecond);
它可以在更短的代碼來完成,而無需首先分配給myTime
:
DateTime myTime = DateTime.Now.TimeOfDay.AddMilliseconds(
-DateTime.Now.TimeOfDay.Millisecond);
雖然幾分優雅,這是一個壞主意。當訪問TimeOfDay
兩次時,有可能在第二次訪問之前某個時間點會再過一毫秒。在那種情況下,結果不會是零毫秒。
我相信這是你可能是什麼後:
TimeSpan timeNow = DateTime.Now.TimeOfDay;
TimeSpan trimmedTimeNow = new TimeSpan(timeNow.Hours, timeNow.Minutes, timeNow.Seconds);
您可以使用此功能檢查什麼格式適合你:
DateTime.Now.GetDateTimeFormats();
這會給你像所有的格式:
"14/05/2011"
"14/05/11"
"14.05.11"
"14-05-11"
"2011-05-14"
你可以做到這 -
DateTime.Parse(
DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"),
System.Globalization.CultureInfo.CurrentCulture
);
爲我工作:)。
你在哪裏存儲它? – Oded 2011-02-09 20:54:39
這僅僅是向用戶展示,還是你真的需要將其轉換成另一個毫秒級組件的時間跨度? – Ani 2011-02-09 20:55:10
是的,我猜它只是關於顯示,所以我只需要使用ToString()方法 – xbonez 2011-02-09 21:04:17