我在做一些DateTime減法操作時遇到了一些麻煩,我從MySQL數據庫收到了一些時間。所有非UTC時間都是美式格式。使用從數據庫檢索到的DateTime進行減法給出奇怪的結果
這是我收到的時候,它是在一個字符串的形式(我使用on Rails的Ruby的應用程序的數據庫檢索):
2017-04-10T15:00:00.000Z
我然後解析字符串轉換爲DateTime並做定期的DateTime的調試(沒有偏移):
start_time = DateTimeOffset.Parse(event_time[2]);
Debug.Log(start_time.DateTime);
,然後顯示以下內容:
4/10/2017 3:00:00 PM
這看起來與我通常使用的格式類似(即, M/dd/yyy h/mm/ss tt),所以我和當前時間做了一個快速比較,以檢查我離它有多遠(參考,DateTime.Now = 2017年4月10日12:46: 26日上午,當我跑這個代碼最後):
TimeSpan tmp;
tmp = (start_time.DateTime).Subtract(DateTime.Now);
Debug.Log(tmp)
然而,這給了我以下結果:
-736428.00:46:22.2744445
這樣做有以下這樣的操作給我一個正常結果:
DateTime tmp2;
TimeSpan tmp3;
tmp2 = DateTime.Now.Add(new TimeSpan(0, 0, 360));
tmp3 = tmp2.Subtract(DateTime.Now)
Debug.Log(tmp2);
Debug.Log(tmp3);
正常結果:
4/10/2017 12:52:26 AM
00:06:00
我是如何處理從數據庫中獲取的時間的?無論我嘗試什麼,我都無法得到正常的結果。
不知道這是否會有所幫助,但我無法重現您的問題。我: 「十四時13分34秒」 http://prntscr.com/eujzg1 – NielW
我無法2017-04-10T15重現該問題:00:00.000Z爲起始日期,以便別的東西在玩。數據庫中是否存在此字段的空值? 的-736428.00結果:46:22.2744445裝置736428天46個MINUES和22.27秒...或更精確地使用運行代碼01/01/0001 12:00 AM和DateTime.Now之間差(4/10/2017 12:46 AM)。 – James