2016-07-25 93 views
0

我正在開發Windows窗體應用程序,並必須顯示日期時間線圖與實時數據爲每一秒鐘。時間跨度到日期時間轉換格式問題顯示日期時間圖表

我必須以(days:hours:min:sec)的格式在x軸上顯示時間。時間應該是00:00:00:00,00:00:00:01,00:00:00:02等。

我將第一個響應時間(系統時間)作爲參考時間date1。再次1秒後,發送請求,獲得響應,捕獲系統時間爲date2,並繼續這樣做。我通過減去date2和date1得到響應時間跨度。

但是對於日期時間圖表,x軸只接受日期時間類型變量,必須使用ToOADate()將其轉換爲double。

問題:雖然轉換時間跨度00:00:06.2867597到日期時間變量被轉換爲2016年7月25日上午12點00分06秒。但我需要的格式爲00:00:06 而不是12:00:06 AM

然後只使用ToOADate(),我會得到正確的double值。 請解決我的問題。

這裏是我的代碼:

DateTime date1 = DateTime.Now; // {7/25/2016 8:13:29 PM} 

DateTime date2 = DateTime.Now; // {7/25/2016 8:13:30 PM} 

TimeSpan time = date2 .Subtract(date1); // {00:00:01.3922821} 

DateTime logTime = Convert.ToDateTime(time.ToString()); // {7/25/2016 12:00:01 AM} 

但我需要logTime Description該條值應該是 「00:00:01」。

+1

DateTime不保持顯示格式。只有它是字符串表示。使用接受格式提供者的ToString重載來顯示DateTime值。 –

+1

你確定你不需要time.ToString()嗎?它看起來像你想要顯示一次到另一次的偏移量,而不是將它轉換回DateTime。 –

+0

爲什麼把它放在DateTime中? –

回答

0

當您使用DateTime時,它會自動顯示爲系統日期時間格式。你必須把它作爲字符串願望輸出這樣

string logTime = Convert.ToDateTime(time.ToString()).ToString("MM/dd/yyyy HH:mm:ss"); 
如果你想

只有部分時間則

string logTime = Convert.ToDateTime(time.ToString()).ToString("HH:mm:ss"); 
+0

ToOADate()將DaeTime值轉換爲double。所以我不想要字符串格式。 –

+0

但是如果沒有將其轉換爲字符串,您無法獲得特定的格式,DateTime沒有任何將顯示爲系統格式的格式,更改系統格式,那麼您將在此處更改爲 – Mostafiz

0

要顯示logTime作爲一個24小時的字符串:

logTime.ToString("HH:mm:ss"); 

您無法將logTime DateTime值本身更改爲表示00:00:01,因爲它們具有相同的值,您只需更改顯示方式即可。