2015-08-20 49 views
-2

我發送請求到服務器。後來我得到響應DateTime設置格式字符串

void feed_OnStreamTrade(string symbol, int tradeFlags, object tradeConditions, byte tradeExchange, double tradePrice, int tradeSize, DateTime tradeDatetime) 
    { 
    //code 
    } 

我必須讓時間格式

年月日HH毫米SS FFF

,但我得到它沒有毫秒(無FFF)

截圖

enter image description here

我不明白。 Windows減少毫秒?

+1

鼠標懸停在變量VS在調試模式並不意味着什麼。這只是向您展示'DateTime.ToString()'的結果,它將使用一些默認格式,通常不包含毫秒。如果你想要毫秒,你必須通過提供正確的格式字符串明確地請求這些信息。 – sstan

回答

0

如果你已經知道你想要的格式編碼,爲什麼不應用它?

DateTime test = new DateTime(2015, 08, 05, 11, 05, 05, 55); 
MessageBox.Show(test.ToString("yyyy MM dd HH mm ss FFF")); 

輸出:2015 08 05 11 05 05 055

也只能挑出毫秒:

MessageBox.Show(test.Millisecond.ToString());

輸出:055

所以,不,毫秒不會有板缺。他們只是不可見。無論如何你都可以進行計算。

0

你只是展示了Visual Studio在quickwatch中顯示的內容。 Visual Studio可能只是隱藏毫秒。

在你的代碼,如果你這樣做:

quoteDateTime.Millisecond 

你應該得到毫秒,如果它爲0,它可能正在某個地方的服務響應和你的方法之間的管線上拆下。

4

當然Windows不會從日期時間中減少毫秒。但是Visual Studio默認不顯示它們。只需在屏幕截圖上展開氣球,您將看到毫秒(當然,如果它們實際存在於日期時間值中)。

enter image description here

+0

截圖http://f5.s.qip.ru/twYEFMgn.png – alexander

+0

那麼,在你的情況下,毫秒可以在其他地方修剪。你確定你的服務器真的給你發送毫秒級的時間嗎?無論如何,它既不是Windows也不是.NET的問題。它位於應用程序或服務器中的某個位置。 –