2011-10-04 49 views
0

我在客戶端有Date(用戶在日期選擇器中選擇它),我想將它發送到服務器並使用UTC值進行未來計算。
例如,用戶選擇Tue Oct 04 2011 00:00:00 GMT+0300 (E. Europe Daylight Time),我發送毫秒到服務器使用date.getTime()。在服務器上使用方法:使用日期時區操作

public static DateTime GetDateByMilliseconds(long milliseconds) 
{ 
    var date = new DateTime(1970, 1, 1); 
    return date.AddMilliseconds(milliseconds); 
} 

並得到Oct 03, 2011 09:00:00 PM。但我想操作價值Oct 04 2011 00:00:00
我該怎麼辦?在客戶端重置日期時區?在服務器上添加偏移?還要別的嗎?

+0

它們是相同的值。你說你想使用UTC,'2011年10月3日09:00:00 PM * *是* Tue Oct 04 2011 00:00:00 GMT + 0300'的UTC值。我不明白這個問題... – deceze

+0

Javascript會給你UTC時間,所以稍後你將不得不添加/減去偏移值來獲得你的DateTime對象 – V4Vendetta

+0

我不是完全清楚它到底是什麼你在問......但是,我可以清楚地知道你的計算是以UTC計算,而不是本地計算,然後將其轉換回當地時間用於顯示。 – James

回答

1

我認爲你應該做的:

date.getTime() + (date.getTimezoneOffset() * 60 * 1000) 

這將「刪除」爲用戶時區的偏移量。